Prechádzať zdrojové kódy

Fixed compiler warnings and added -std=c99.

upb no longer requires -std=c99 but the Ruby/C
code still uses C99 features.
Josh Haberman 10 rokov pred
rodič
commit
e3ce451b60

+ 6 - 9
ruby/ext/google/protobuf_c/defs.c

@@ -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.");
   }
 

+ 1 - 1
ruby/ext/google/protobuf_c/extconf.rb

@@ -2,7 +2,7 @@
 
 require 'mkmf'
 
-$CFLAGS += " -O3 -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"]