Merge pull request #477 from haberman/upbupdate

Updated upb to latest version (C89).
pull/488/head
Joshua Haberman 10 years ago
commit c35ac0789b
  1. 15
      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. 4894
      ruby/ext/google/protobuf_c/upb.c
  5. 8748
      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.");
}
upb_fieldtype_t upb_type = -1;
#define CONVERT(upb, ruby) \
if (SYM2ID(type) == rb_intern( # ruby )) { \
upb_type = UPB_TYPE_ ## upb; \
return UPB_TYPE_ ## upb; \
}
CONVERT(FLOAT, float);
@ -567,11 +565,8 @@ upb_fieldtype_t ruby_to_fieldtype(VALUE type) {
#undef CONVERT
if (upb_type == -1) {
rb_raise(rb_eArgError, "Unknown field type.");
}
return upb_type;
rb_raise(rb_eArgError, "Unknown field type.");
return 0;
}
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;
bool converted = false;
#define CONVERT(upb, ruby) \
if (SYM2ID(label) == rb_intern( # ruby )) { \
upb_label = UPB_LABEL_ ## upb; \
converted = true; \
}
CONVERT(OPTIONAL, optional);
@ -678,7 +675,7 @@ VALUE FieldDescriptor_label_set(VALUE _self, VALUE label) {
#undef CONVERT
if (upb_label == -1) {
if (!converted) {
rb_raise(rb_eArgError, "Unknown field label.");
}

@ -2,9 +2,7 @@
require 'mkmf'
$CFLAGS += " -O3 -std=c99 -Wno-unused-function " +
"-Wno-declaration-after-statement -Wno-unused-variable " +
"-Wno-sign-compare -DNDEBUG "
$CFLAGS += " -std=c99 -O3 -DNDEBUG"
$objs = ["protobuf.o", "defs.o", "storage.o", "message.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) {
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