File tree 1 file changed +4
-2
lines changed
ruby/ext/google/protobuf_c 1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -1290,7 +1290,9 @@ VALUE build_module_from_enumdesc(VALUE _enumdesc) {
1290
1290
int n = upb_EnumDef_ValueCount (e );
1291
1291
for (int i = 0 ; i < n ; i ++ ) {
1292
1292
const upb_EnumValueDef * ev = upb_EnumDef_Value (e , i );
1293
- char * name = strdup (upb_EnumValueDef_Name (ev ));
1293
+ upb_Arena * arena = upb_Arena_New ();
1294
+ const char * src_name = upb_EnumValueDef_Name (ev );
1295
+ char * name = upb_strdup2 (src_name , strlen (src_name ), arena );
1294
1296
int32_t value = upb_EnumValueDef_Number (ev );
1295
1297
if (name [0 ] < 'A' || name [0 ] > 'Z' ) {
1296
1298
if (name [0 ] >= 'a' && name [0 ] <= 'z' ) {
@@ -1303,7 +1305,7 @@ VALUE build_module_from_enumdesc(VALUE _enumdesc) {
1303
1305
}
1304
1306
}
1305
1307
rb_define_const (mod , name , INT2NUM (value ));
1306
- free ( name );
1308
+ upb_Arena_Free ( arena );
1307
1309
}
1308
1310
1309
1311
rb_define_singleton_method (mod , "lookup" , enum_lookup , 1 );
You can’t perform that action at this time.
0 commit comments