… | |
… | |
942 | sv = newRV_noinc (decode_sv (dec)); |
942 | sv = newRV_noinc (decode_sv (dec)); |
943 | break; |
943 | break; |
944 | |
944 | |
945 | case CBOR_TAG_STRINGREF_NAMESPACE: |
945 | case CBOR_TAG_STRINGREF_NAMESPACE: |
946 | { |
946 | { |
|
|
947 | // do nmot use SAVETMPS/FREETMPS, as these will |
|
|
948 | // erase mortalised caches, e.g. "shareable" |
947 | ENTER; SAVETMPS; |
949 | ENTER; |
948 | |
950 | |
949 | SAVESPTR (dec->stringref); |
951 | SAVESPTR (dec->stringref); |
950 | dec->stringref = (AV *)sv_2mortal ((SV *)newAV ()); |
952 | dec->stringref = (AV *)sv_2mortal ((SV *)newAV ()); |
951 | |
953 | |
952 | sv = decode_sv (dec); |
954 | sv = decode_sv (dec); |
953 | |
955 | |
954 | FREETMPS; LEAVE; |
956 | LEAVE; |
955 | } |
957 | } |
956 | break; |
958 | break; |
957 | |
959 | |
958 | case CBOR_TAG_STRINGREF: |
960 | case CBOR_TAG_STRINGREF: |
959 | { |
961 | { |