Skip to content

Commit caff11b

Browse files
committed
revert last change
1 parent fb29941 commit caff11b

1 file changed

Lines changed: 12 additions & 16 deletions

File tree

src/mrb_cbor.c

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1371,11 +1371,7 @@ encode_proc_tag(mrb_state *mrb, CborWriter *w, mrb_value obj)
13711371
{
13721372
mrb_value proc_rev = cbor_proc_tag_rev_registry(mrb);
13731373
struct proc_tag_foreach_arg a = {w, obj, FALSE };
1374-
struct RBasic *basic_ptr = mrb_basic_ptr(proc_rev);
1375-
unsigned int was_frozen = basic_ptr->frozen;
1376-
basic_ptr->frozen = TRUE;
13771374
mrb_hash_foreach(mrb, mrb_hash_ptr(proc_rev), proc_tag_foreach_cb, &a);
1378-
basic_ptr->frozen = was_frozen;
13791375
return a.found;
13801376
}
13811377

@@ -1629,7 +1625,7 @@ encode_value_fast(CborWriter *w, mrb_value obj)
16291625
// Fast decoder
16301626
// ============================================================================
16311627

1632-
static mrb_value decode_value_fast(mrb_state *mrb, Reader *r, mrb_value sharedrefs, mrb_value src);
1628+
static mrb_value decode_value_fast(mrb_state *mrb, Reader *r, mrb_value src);
16331629

16341630
static mrb_value
16351631
decode_uint_fast(mrb_state *mrb, Reader *r)
@@ -1745,7 +1741,7 @@ decode_float_fast(mrb_state *mrb, Reader *r)
17451741
#endif
17461742

17471743
static mrb_value
1748-
decode_value_fast(mrb_state *mrb, Reader *r, mrb_value sharedrefs, mrb_value src)
1744+
decode_value_fast(mrb_state *mrb, Reader *r, mrb_value src)
17491745
{
17501746
reader_check_depth(mrb, r);
17511747
r->depth++;
@@ -1788,7 +1784,7 @@ decode_value_fast(mrb_state *mrb, Reader *r, mrb_value sharedrefs, mrb_value src
17881784
mrb_value ary = mrb_ary_new(mrb);
17891785
int idx = mrb_gc_arena_save(mrb);
17901786
for (mrb_int i = 0; i < len; i++) {
1791-
mrb_ary_push(mrb, ary, decode_value_fast(mrb, r, sharedrefs, src));
1787+
mrb_ary_push(mrb, ary, decode_value_fast(mrb, r, src));
17921788
mrb_gc_arena_restore(mrb, idx);
17931789
}
17941790
result = ary;
@@ -1799,8 +1795,8 @@ decode_value_fast(mrb_state *mrb, Reader *r, mrb_value sharedrefs, mrb_value src
17991795
mrb_value hash = mrb_hash_new(mrb);
18001796
int idx = mrb_gc_arena_save(mrb);
18011797
for (mrb_int i = 0; i < len; i++) {
1802-
mrb_value key = decode_value_fast(mrb, r, sharedrefs, src);
1803-
mrb_value val = decode_value_fast(mrb, r, sharedrefs, src);
1798+
mrb_value key = decode_value_fast(mrb, r, src);
1799+
mrb_value val = decode_value_fast(mrb, r, src);
18041800
mrb_hash_set(mrb, hash, key, val);
18051801
mrb_gc_arena_restore(mrb, idx);
18061802
}
@@ -1814,7 +1810,7 @@ decode_value_fast(mrb_state *mrb, Reader *r, mrb_value sharedrefs, mrb_value src
18141810

18151811
if (mrb_cmp(mrb, tag, mrb_fixnum_value(39)) == 0) {
18161812
/* symbol — always encoded as tag 39 + string in fast path */
1817-
mrb_value v = decode_value_fast(mrb, r, sharedrefs, src);
1813+
mrb_value v = decode_value_fast(mrb, r, src);
18181814
if (likely(mrb_string_p(v))) {
18191815
result = mrb_symbol_value(mrb_intern_str(mrb, v));
18201816
} else {
@@ -1823,20 +1819,20 @@ decode_value_fast(mrb_state *mrb, Reader *r, mrb_value sharedrefs, mrb_value src
18231819
}
18241820
else if (mrb_cmp(mrb, tag, mrb_convert_uint32(mrb, CBOR_TAG_CLASS)) == 0) {
18251821
/* class/module — tag 49999 + string */
1826-
mrb_value v = decode_value_fast(mrb, r, sharedrefs,src);
1822+
mrb_value v = decode_value_fast(mrb, r ,src);
18271823
if (likely(mrb_string_p(v))) {
18281824
result = mrb_str_constantize(mrb, v);
18291825
} else {
18301826
mrb_raise(mrb, E_TYPE_ERROR, "fast: tag 49999 payload must be string");
18311827
}
18321828
} else {
1833-
result = decode_class_tag(mrb, r, src, sharedrefs, tag);
1829+
result = decode_class_tag(mrb, r, src, mrb_undef_value(), tag);
18341830
if (!mrb_undef_p(result))break;
18351831

1836-
result = decode_proc_tag(mrb, r, src, sharedrefs, tag);
1832+
result = decode_proc_tag(mrb, r, src, mrb_undef_value(), tag);
18371833
if (!mrb_undef_p(result))break;
18381834

1839-
result = decode_unhandled_tag(mrb, r, src, sharedrefs, tag);
1835+
result = decode_unhandled_tag(mrb, r, src, mrb_undef_value(), tag);
18401836
}
18411837
} break;
18421838
case 7:
@@ -1888,7 +1884,7 @@ cbor_decode_fast_rb(mrb_state *mrb, mrb_value self)
18881884
mrb_value owned = mrb_str_byte_subseq(mrb, src, 0, RSTRING_LEN(src));
18891885
Reader r;
18901886
reader_init(&r, (const uint8_t*)RSTRING_PTR(owned), (size_t)RSTRING_LEN(owned));
1891-
return decode_value_fast(mrb, &r, mrb_undef_value(), owned);
1887+
return decode_value_fast(mrb, &r, owned);
18921888
}
18931889

18941890
// ============================================================================
@@ -2935,7 +2931,7 @@ mrb_cbor_decode_fast(mrb_state *mrb, mrb_value buf)
29352931
mrb_value owned = mrb_str_byte_subseq(mrb, buf, 0, RSTRING_LEN(buf));
29362932
Reader r;
29372933
reader_init(&r, (const uint8_t*)RSTRING_PTR(owned), (size_t)RSTRING_LEN(owned));
2938-
return decode_value_fast(mrb, &r, mrb_undef_value(), owned);
2934+
return decode_value_fast(mrb, &r, owned);
29392935
}
29402936
mrb_raise(mrb, E_TYPE_ERROR, "buf is not a String");
29412937
}

0 commit comments

Comments
 (0)