Merge pull request #477 from haberman/upbupdate

Updated upb to latest version (C89).
pull/488/head
Joshua Haberman 10 years ago
commit c35ac0789b
  1. 13
      ruby/ext/google/protobuf_c/defs.c
  2. 4
      ruby/ext/google/protobuf_c/extconf.rb
  3. 2
      ruby/ext/google/protobuf_c/map.c
  4. 4788
      ruby/ext/google/protobuf_c/upb.c
  5. 9410
      ruby/ext/google/protobuf_c/upb.h

@ -546,11 +546,9 @@ upb_fieldtype_t ruby_to_fieldtype(VALUE type) {
rb_raise(rb_eArgError, "Expected symbol for field type."); rb_raise(rb_eArgError, "Expected symbol for field type.");
} }
upb_fieldtype_t upb_type = -1;
#define CONVERT(upb, ruby) \ #define CONVERT(upb, ruby) \
if (SYM2ID(type) == rb_intern( # ruby )) { \ if (SYM2ID(type) == rb_intern( # ruby )) { \
upb_type = UPB_TYPE_ ## upb; \ return UPB_TYPE_ ## upb; \
} }
CONVERT(FLOAT, float); CONVERT(FLOAT, float);
@ -567,11 +565,8 @@ upb_fieldtype_t ruby_to_fieldtype(VALUE type) {
#undef CONVERT #undef CONVERT
if (upb_type == -1) {
rb_raise(rb_eArgError, "Unknown field type."); rb_raise(rb_eArgError, "Unknown field type.");
} return 0;
return upb_type;
} }
VALUE fieldtype_to_ruby(upb_fieldtype_t type) { VALUE fieldtype_to_ruby(upb_fieldtype_t type) {
@ -666,10 +661,12 @@ VALUE FieldDescriptor_label_set(VALUE _self, VALUE label) {
} }
upb_label_t upb_label = -1; upb_label_t upb_label = -1;
bool converted = false;
#define CONVERT(upb, ruby) \ #define CONVERT(upb, ruby) \
if (SYM2ID(label) == rb_intern( # ruby )) { \ if (SYM2ID(label) == rb_intern( # ruby )) { \
upb_label = UPB_LABEL_ ## upb; \ upb_label = UPB_LABEL_ ## upb; \
converted = true; \
} }
CONVERT(OPTIONAL, optional); CONVERT(OPTIONAL, optional);
@ -678,7 +675,7 @@ VALUE FieldDescriptor_label_set(VALUE _self, VALUE label) {
#undef CONVERT #undef CONVERT
if (upb_label == -1) { if (!converted) {
rb_raise(rb_eArgError, "Unknown field label."); rb_raise(rb_eArgError, "Unknown field label.");
} }

@ -2,9 +2,7 @@
require 'mkmf' require 'mkmf'
$CFLAGS += " -O3 -std=c99 -Wno-unused-function " + $CFLAGS += " -std=c99 -O3 -DNDEBUG"
"-Wno-declaration-after-statement -Wno-unused-variable " +
"-Wno-sign-compare -DNDEBUG "
$objs = ["protobuf.o", "defs.o", "storage.o", "message.o", $objs = ["protobuf.o", "defs.o", "storage.o", "message.o",
"repeated_field.o", "map.o", "encode_decode.o", "upb.o"] "repeated_field.o", "map.o", "encode_decode.o", "upb.o"]

@ -120,7 +120,7 @@ static VALUE table_key_to_ruby(Map* self, const char* buf, size_t length) {
} }
static void* value_memory(upb_value* v) { static void* value_memory(upb_value* v) {
return (void*)(&v->val.uint64); return (void*)(&v->val);
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save