diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2017-08-30 11:16:57 -0700 |
---|---|---|
committer | Bo Yang <teboring@google.com> | 2017-09-13 14:28:02 -0700 |
commit | a459b224b5fbc30c328715a06f95ca494f1e5d6a (patch) | |
tree | 0c56e7bbbc492fd888439c36d34187cfed53714e /ruby/ext/google/protobuf_c/encode_decode.c | |
parent | c1dd8e85a1314a7bcb2059b842c6830d854fbefa (diff) |
Storing the frame on the map means we don't need the array
Diffstat (limited to 'ruby/ext/google/protobuf_c/encode_decode.c')
-rw-r--r-- | ruby/ext/google/protobuf_c/encode_decode.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/ruby/ext/google/protobuf_c/encode_decode.c b/ruby/ext/google/protobuf_c/encode_decode.c index 1427f4b8..edbbe6a5 100644 --- a/ruby/ext/google/protobuf_c/encode_decode.c +++ b/ruby/ext/google/protobuf_c/encode_decode.c @@ -288,7 +288,7 @@ static map_parse_frame_t* map_push_frame(VALUE map, native_slot_init(handlerdata->key_field_type, &frame->key_storage); native_slot_init(handlerdata->value_field_type, &frame->value_storage); - Map_push_frame(map, + Map_set_frame(map, TypedData_Wrap_Struct(rb_cObject, &MapParseFrame_type, frame)); return frame; @@ -327,7 +327,7 @@ static bool endmap_handler(void *closure, const void *hd, upb_status* s) { &frame->value_storage); Map_index_set(frame->map, key, value); - Map_pop_frame(frame->map); + Map_set_frame(frame->map, Qnil); return true; } |