Classes | Macros | Functions | Variables
ruby/ext/google/protobuf_c/encode_decode.c File Reference
#include "protobuf.h"
Include dependency graph for ruby/ext/google/protobuf_c/encode_decode.c:

Go to the source code of this file.

Classes

struct  field_handlerdata_t
 
struct  map_handlerdata_t
 
struct  map_parse_frame_t
 
struct  oneof_handlerdata_t
 
struct  stackenv
 
struct  submsg_handlerdata_t
 

Macros

#define DEFINE_APPEND_HANDLER(type, ctype)
 
#define DEFINE_ONEOF_HANDLER(type, ctype)
 
#define DEREF(msg, ofs, type)   *(type*)(((uint8_t *)msg) + ofs)
 
#define SET_HANDLER(utype, ltype)
 
#define SET_HANDLER(utype, ltype)
 
#define STACK_ENV_STACKBYTES   4096
 
#define T(upbtypeconst, upbtype, ctype)
 
#define T(upbtypeconst, upbtype, ctype, default_value)
 

Functions

static void add_handlers_for_mapentry (const upb_msgdef *msgdef, upb_handlers *h, Descriptor *desc)
 
static void add_handlers_for_mapfield (upb_handlers *h, const upb_fielddef *fielddef, size_t offset, Descriptor *desc)
 
static void add_handlers_for_message (const void *closure, upb_handlers *h)
 
static void add_handlers_for_oneof_field (upb_handlers *h, const upb_fielddef *f, size_t offset, size_t oneof_case_offset)
 
static void add_handlers_for_repeated_field (upb_handlers *h, const upb_fielddef *f, size_t offset)
 
static void add_handlers_for_singular_field (upb_handlers *h, const upb_fielddef *f, size_t offset, size_t hasbit_off)
 
static voidappendbytes_handler (void *closure, const void *hd, size_t size_hint)
 
static voidappendstr_handler (void *closure, const void *hd, size_t size_hint)
 
static bool appendstring_end_handler (void *closure, const void *hd)
 
static voidappendsubmsg_handler (void *closure, const void *hd)
 
static voidbytes_handler (void *closure, const void *hd, size_t size_hint)
 
static void discard_unknown (VALUE msg_rb, const Descriptor *desc)
 
static bool endmap_handler (void *closure, const void *hd, upb_status *s)
 
static bool env_error_func (void *ud, const upb_status *status)
 
const upb_handlersget_fill_handlers (Descriptor *desc)
 
static upb_selector_t getsel (const upb_fielddef *f, upb_handlertype_t type)
 
VALUE Google_Protobuf_discard_unknown (VALUE self, VALUE msg_rb)
 
static map_parse_frame_tmap_push_frame (VALUE map, const map_handlerdata_t *handlerdata)
 
void MapParseFrame_free (void *self)
 
static void MapParseFrame_mark (void *_self)
 
VALUE Message_decode (VALUE klass, VALUE data)
 
VALUE Message_decode_json (int argc, VALUE *argv, VALUE klass)
 
VALUE Message_encode (VALUE klass, VALUE msg_rb)
 
VALUE Message_encode_json (int argc, VALUE *argv, VALUE klass)
 
static const upb_pbdecodermethodmsgdef_decodermethod (Descriptor *desc)
 
static const upb_handlersmsgdef_json_serialize_handlers (Descriptor *desc, bool preserve_proto_fieldnames)
 
static const upb_json_parsermethodmsgdef_jsonparsermethod (Descriptor *desc)
 
static const upb_handlersmsgdef_pb_serialize_handlers (Descriptor *desc)
 
static const upb_handlersnew_fill_handlers (Descriptor *desc, const void *owner)
 
const upb_pbdecodermethodnew_fillmsg_decodermethod (Descriptor *desc, const void *owner)
 
static map_handlerdata_tnew_map_handlerdata (size_t ofs, const upb_msgdef *mapentry_def, Descriptor *desc)
 
static const voidnewhandlerdata (upb_handlers *h, uint32_t ofs, int32_t hasbit)
 
static const voidnewoneofhandlerdata (upb_handlers *h, uint32_t ofs, uint32_t case_ofs, const upb_fielddef *f)
 
static const voidnewsubmsghandlerdata (upb_handlers *h, uint32_t ofs, int32_t hasbit, const upb_fielddef *f)
 
VALUE noleak_rb_str_cat (VALUE rb_str, const char *str, long len)
 
static voidoneofbytes_handler (void *closure, const void *hd, size_t size_hint)
 
static voidoneofstr_handler (void *closure, const void *hd, size_t size_hint)
 
static bool oneofstring_end_handler (void *closure, const void *hd)
 
static voidoneofsubmsg_handler (void *closure, const void *hd)
 
static void put_ruby_value (VALUE value, const upb_fielddef *f, VALUE type_class, int depth, upb_sink *sink, bool emit_defaults, bool is_json)
 
static void putary (VALUE ary, const upb_fielddef *f, upb_sink *sink, int depth, bool emit_defaults, bool is_json)
 
static void putjsonany (VALUE msg_rb, const Descriptor *desc, upb_sink *sink, int depth, bool emit_defaults)
 
static void putjsonlistvalue (VALUE msg_rb, const Descriptor *desc, upb_sink *sink, int depth, bool emit_defaults)
 
static void putmap (VALUE map, const upb_fielddef *f, upb_sink *sink, int depth, bool emit_defaults, bool is_json)
 
static void putmsg (VALUE msg, const Descriptor *desc, upb_sink *sink, int depth, bool emit_defaults, bool is_json, bool open_msg)
 
static void putstr (VALUE str, const upb_fielddef *f, upb_sink *sink)
 
static void putsubmsg (VALUE submsg, const upb_fielddef *f, upb_sink *sink, int depth, bool emit_defaults, bool is_json)
 
static void set_hasbit (void *closure, int32_t hasbit)
 
static void stackenv_init (stackenv *se, const char *errmsg)
 
static void stackenv_uninit (stackenv *se)
 
static voidstartmapentry_handler (void *closure, const void *hd)
 
static voidstartseq_handler (void *closure, const void *hd)
 
static voidstr_handler (void *closure, const void *hd, size_t size_hint)
 
static bool stringdata_end_handler (void *closure, const void *hd)
 
static size_t stringdata_handler (void *closure, const void *hd, const char *str, size_t len, const upb_bufhandle *handle)
 
void stringsink_init (stringsink *sink)
 
static voidstringsink_start (void *_sink, const void *hd, size_t size_hint)
 
static size_t stringsink_string (void *_sink, const void *hd, const char *ptr, size_t len, const upb_bufhandle *handle)
 
void stringsink_uninit (stringsink *sink)
 
static voidsubmsg_handler (void *closure, const void *hd)
 
static bool unknown_field_handler (void *closure, const void *hd, const char *buf, size_t size)
 

Variables

rb_data_type_t MapParseFrame_type
 

Macro Definition Documentation

◆ DEFINE_APPEND_HANDLER

#define DEFINE_APPEND_HANDLER (   type,
  ctype 
)
Value:
static bool append##type##_handler(void *closure, const void *hd, \
ctype val) { \
VALUE ary = (VALUE)closure; \
RepeatedField_push_native(ary, &val); \
return true; \
}

Definition at line 175 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ DEFINE_ONEOF_HANDLER

#define DEFINE_ONEOF_HANDLER (   type,
  ctype 
)
Value:
static bool oneof##type##_handler(void *closure, const void *hd, \
ctype val) { \
const oneof_handlerdata_t *oneofdata = hd; \
DEREF(closure, oneofdata->case_ofs, uint32_t) = \
oneofdata->oneof_case_num; \
DEREF(closure, oneofdata->ofs, ctype) = val; \
return true; \
}

Definition at line 434 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ DEREF

#define DEREF (   msg,
  ofs,
  type 
)    *(type*)(((uint8_t *)msg) + ofs)

Definition at line 101 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ SET_HANDLER [1/2]

#define SET_HANDLER (   utype,
  ltype 
)
Value:
case utype: \
upb_handlers_set##ltype(h, f, append##ltype##_handler, NULL); \
break;

◆ SET_HANDLER [2/2]

#define SET_HANDLER (   utype,
  ltype 
)
Value:
case utype: \
upb_handlers_set##ltype(h, f, oneof##ltype##_handler, &attr); \
break;

◆ STACK_ENV_STACKBYTES

#define STACK_ENV_STACKBYTES   4096

Definition at line 813 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ T [1/2]

#define T (   upbtypeconst,
  upbtype,
  ctype 
)
Value:
case upbtypeconst: \
upb_sink_put##upbtype(&subsink, sel, *((ctype *)memory)); \
break;

◆ T [2/2]

#define T (   upbtypeconst,
  upbtype,
  ctype,
  default_value 
)
Value:
case upbtypeconst: { \
ctype value = DEREF(msg, offset, ctype); \
bool is_default = false; \
is_default = layout_has(desc->layout, Message_data(msg), f) == Qfalse; \
} else if (upb_msgdef_syntax(desc->msgdef) == UPB_SYNTAX_PROTO3) { \
is_default = default_value == value; \
} \
if (is_matching_oneof || emit_defaults || !is_default) { \
upb_sink_put##upbtype(sink, sel, value); \
} \
} \
break;

Function Documentation

◆ add_handlers_for_mapentry()

static void add_handlers_for_mapentry ( const upb_msgdef msgdef,
upb_handlers h,
Descriptor desc 
)
static

Definition at line 630 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ add_handlers_for_mapfield()

static void add_handlers_for_mapfield ( upb_handlers h,
const upb_fielddef fielddef,
size_t  offset,
Descriptor desc 
)
static

Definition at line 615 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ add_handlers_for_message()

static void add_handlers_for_message ( const void closure,
upb_handlers h 
)
static

Definition at line 714 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ add_handlers_for_oneof_field()

static void add_handlers_for_oneof_field ( upb_handlers h,
const upb_fielddef f,
size_t  offset,
size_t  oneof_case_offset 
)
static

Definition at line 653 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ add_handlers_for_repeated_field()

static void add_handlers_for_repeated_field ( upb_handlers h,
const upb_fielddef f,
size_t  offset 
)
static

Definition at line 520 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ add_handlers_for_singular_field()

static void add_handlers_for_singular_field ( upb_handlers h,
const upb_fielddef f,
size_t  offset,
size_t  hasbit_off 
)
static

Definition at line 567 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ appendbytes_handler()

static void* appendbytes_handler ( void closure,
const void hd,
size_t  size_hint 
)
static

Definition at line 210 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ appendstr_handler()

static void* appendstr_handler ( void closure,
const void hd,
size_t  size_hint 
)
static

Definition at line 192 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ appendstring_end_handler()

static bool appendstring_end_handler ( void closure,
const void hd 
)
static

Definition at line 262 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ appendsubmsg_handler()

static void* appendsubmsg_handler ( void closure,
const void hd 
)
static

Definition at line 269 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ bytes_handler()

static void* bytes_handler ( void closure,
const void hd,
size_t  size_hint 
)
static

Definition at line 235 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ discard_unknown()

static void discard_unknown ( VALUE  msg_rb,
const Descriptor desc 
)
static

Definition at line 1530 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ endmap_handler()

static bool endmap_handler ( void closure,
const void hd,
upb_status s 
)
static

Definition at line 378 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ env_error_func()

static bool env_error_func ( void ud,
const upb_status status 
)
static

Definition at line 824 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ get_fill_handlers()

const upb_handlers* get_fill_handlers ( Descriptor desc)

Definition at line 773 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ getsel()

static upb_selector_t getsel ( const upb_fielddef f,
upb_handlertype_t  type 
)
static

Definition at line 963 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ Google_Protobuf_discard_unknown()

VALUE Google_Protobuf_discard_unknown ( VALUE  self,
VALUE  msg_rb 
)

Definition at line 1607 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ map_push_frame()

static map_parse_frame_t* map_push_frame ( VALUE  map,
const map_handlerdata_t handlerdata 
)
static

Definition at line 352 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ MapParseFrame_free()

void MapParseFrame_free ( void self)

Definition at line 343 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ MapParseFrame_mark()

static void MapParseFrame_mark ( void _self)
static

Definition at line 332 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ Message_decode()

VALUE Message_decode ( VALUE  klass,
VALUE  data 
)

Definition at line 856 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ Message_decode_json()

VALUE Message_decode_json ( int  argc,
VALUE *  argv,
VALUE  klass 
)

Definition at line 900 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ Message_encode()

VALUE Message_encode ( VALUE  klass,
VALUE  msg_rb 
)

Definition at line 1442 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ Message_encode_json()

VALUE Message_encode_json ( int  argc,
VALUE *  argv,
VALUE  klass 
)

Definition at line 1480 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ msgdef_decodermethod()

static const upb_pbdecodermethod* msgdef_decodermethod ( Descriptor desc)
static

Definition at line 792 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ msgdef_json_serialize_handlers()

static const upb_handlers * msgdef_json_serialize_handlers ( Descriptor desc,
bool  preserve_proto_fieldnames 
)
static

Definition at line 1416 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ msgdef_jsonparsermethod()

static const upb_json_parsermethod* msgdef_jsonparsermethod ( Descriptor desc)
static

Definition at line 800 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ msgdef_pb_serialize_handlers()

static const upb_handlers* msgdef_pb_serialize_handlers ( Descriptor desc)
static

Definition at line 1408 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ new_fill_handlers()

static const upb_handlers* new_fill_handlers ( Descriptor desc,
const void owner 
)
static

Definition at line 761 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ new_fillmsg_decodermethod()

const upb_pbdecodermethod* new_fillmsg_decodermethod ( Descriptor desc,
const void owner 
)

Definition at line 783 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ new_map_handlerdata()

static map_handlerdata_t* new_map_handlerdata ( size_t  ofs,
const upb_msgdef mapentry_def,
Descriptor desc 
)
static

Definition at line 414 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ newhandlerdata()

static const void* newhandlerdata ( upb_handlers h,
uint32_t  ofs,
int32_t  hasbit 
)
static

Definition at line 109 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ newoneofhandlerdata()

static const void* newoneofhandlerdata ( upb_handlers h,
uint32_t  ofs,
uint32_t  case_ofs,
const upb_fielddef f 
)
static

Definition at line 143 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ newsubmsghandlerdata()

static const void* newsubmsghandlerdata ( upb_handlers h,
uint32_t  ofs,
int32_t  hasbit,
const upb_fielddef f 
)
static

Definition at line 124 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ noleak_rb_str_cat()

VALUE noleak_rb_str_cat ( VALUE  rb_str,
const char *  str,
long  len 
)

Definition at line 37 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ oneofbytes_handler()

static void* oneofbytes_handler ( void closure,
const void hd,
size_t  size_hint 
)
static

Definition at line 468 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ oneofstr_handler()

static void* oneofstr_handler ( void closure,
const void hd,
size_t  size_hint 
)
static

Definition at line 455 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ oneofstring_end_handler()

static bool oneofstring_end_handler ( void closure,
const void hd 
)
static

Definition at line 481 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ oneofsubmsg_handler()

static void* oneofsubmsg_handler ( void closure,
const void hd 
)
static

Definition at line 488 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ put_ruby_value()

static void put_ruby_value ( VALUE  value,
const upb_fielddef f,
VALUE  type_class,
int  depth,
upb_sink sink,
bool  emit_defaults,
bool  is_json 
)
static

Definition at line 1060 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ putary()

static void putary ( VALUE  ary,
const upb_fielddef f,
upb_sink sink,
int  depth,
bool  emit_defaults,
bool  is_json 
)
static

Definition at line 1008 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ putjsonany()

static void putjsonany ( VALUE  msg_rb,
const Descriptor desc,
upb_sink sink,
int  depth,
bool  emit_defaults 
)
static

Definition at line 1159 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ putjsonlistvalue()

static void putjsonlistvalue ( VALUE  msg_rb,
const Descriptor desc,
upb_sink sink,
int  depth,
bool  emit_defaults 
)
static

Definition at line 1243 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ putmap()

static void putmap ( VALUE  map,
const upb_fielddef f,
upb_sink sink,
int  depth,
bool  emit_defaults,
bool  is_json 
)
static

Definition at line 1115 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ putmsg()

static void putmsg ( VALUE  msg,
const Descriptor desc,
upb_sink sink,
int  depth,
bool  emit_defaults,
bool  is_json,
bool  open_msg 
)
static

Definition at line 1271 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ putstr()

static void putstr ( VALUE  str,
const upb_fielddef f,
upb_sink sink 
)
static

Definition at line 970 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ putsubmsg()

static void putsubmsg ( VALUE  submsg,
const upb_fielddef f,
upb_sink sink,
int  depth,
bool  emit_defaults,
bool  is_json 
)
static

Definition at line 992 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ set_hasbit()

static void set_hasbit ( void closure,
int32_t  hasbit 
)
static

Definition at line 202 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ stackenv_init()

static void stackenv_init ( stackenv se,
const char *  errmsg 
)
static

Definition at line 838 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ stackenv_uninit()

static void stackenv_uninit ( stackenv se)
static

Definition at line 844 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ startmapentry_handler()

static void* startmapentry_handler ( void closure,
const void hd 
)
static

Definition at line 368 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ startseq_handler()

static void* startseq_handler ( void closure,
const void hd 
)
static

Definition at line 168 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ str_handler()

static void* str_handler ( void closure,
const void hd,
size_t  size_hint 
)
static

Definition at line 221 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ stringdata_end_handler()

static bool stringdata_end_handler ( void closure,
const void hd 
)
static

Definition at line 256 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ stringdata_handler()

static size_t stringdata_handler ( void closure,
const void hd,
const char *  str,
size_t  len,
const upb_bufhandle handle 
)
static

Definition at line 248 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ stringsink_init()

void stringsink_init ( stringsink sink)

Definition at line 81 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ stringsink_start()

static void* stringsink_start ( void _sink,
const void hd,
size_t  size_hint 
)
static

Definition at line 52 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ stringsink_string()

static size_t stringsink_string ( void _sink,
const void hd,
const char *  ptr,
size_t  len,
const upb_bufhandle handle 
)
static

Definition at line 58 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ stringsink_uninit()

void stringsink_uninit ( stringsink sink)

Definition at line 93 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ submsg_handler()

static void* submsg_handler ( void closure,
const void hd 
)
static

Definition at line 285 of file ruby/ext/google/protobuf_c/encode_decode.c.

◆ unknown_field_handler()

static bool unknown_field_handler ( void closure,
const void hd,
const char *  buf,
size_t  size 
)
static

Definition at line 699 of file ruby/ext/google/protobuf_c/encode_decode.c.

Variable Documentation

◆ MapParseFrame_type

rb_data_type_t MapParseFrame_type
Initial value:
= {
"MapParseFrame",
}

Definition at line 347 of file ruby/ext/google/protobuf_c/encode_decode.c.

NULL
NULL
Definition: test_security_zap.cpp:405
desc
#define desc
Definition: extension_set.h:342
Message_data
void * Message_data(void *msg)
Definition: ruby/ext/google/protobuf_c/message.c:37
DEREF
#define DEREF(msg, ofs, type)
Definition: ruby/ext/google/protobuf_c/encode_decode.c:101
oneof_handlerdata_t
Definition: php/ext/google/protobuf/encode_decode.c:178
UPB_SYNTAX_PROTO3
@ UPB_SYNTAX_PROTO3
Definition: php/ext/google/protobuf/upb.h:3141
MapParseFrame_mark
static void MapParseFrame_mark(void *_self)
Definition: ruby/ext/google/protobuf_c/encode_decode.c:332
offset
GLintptr offset
Definition: glcorearb.h:2944
oneof_handlerdata_t::oneof_case_num
uint32_t oneof_case_num
Definition: php/ext/google/protobuf/encode_decode.c:182
layout_has
VALUE layout_has(MessageLayout *layout, const void *storage, const upb_fielddef *field)
Definition: ruby/ext/google/protobuf_c/storage.c:640
MapParseFrame_free
void MapParseFrame_free(void *self)
Definition: ruby/ext/google/protobuf_c/encode_decode.c:343
type
GLenum type
Definition: glcorearb.h:2695
append
ROSCPP_DECL std::string append(const std::string &left, const std::string &right)
default_value
def default_value(type_)
val
GLuint GLfloat * val
Definition: glcorearb.h:3604
f
GLfloat f
Definition: glcorearb.h:3964
value
GLsizei const GLfloat * value
Definition: glcorearb.h:3093
upb_msgdef_syntax
upb_syntax_t upb_msgdef_syntax(const upb_msgdef *m)
Definition: php/ext/google/protobuf/upb.c:1745
upb_fielddef_haspresence
bool upb_fielddef_haspresence(const upb_fielddef *f)
Definition: php/ext/google/protobuf/upb.c:1713
h
GLfloat GLfloat GLfloat GLfloat h
Definition: glcorearb.h:4147


libaditof
Author(s):
autogenerated on Wed May 21 2025 02:07:02