… | |
… | |
438 | |
438 | |
439 | static void |
439 | static void |
440 | encode_hv (enc_t *enc, HV *hv) |
440 | encode_hv (enc_t *enc, HV *hv) |
441 | { |
441 | { |
442 | HE *he; |
442 | HE *he; |
443 | int count; |
|
|
444 | |
443 | |
445 | if (enc->indent >= enc->maxdepth) |
444 | if (enc->indent >= enc->maxdepth) |
446 | croak ("data structure too deep (hit recursion limit)"); |
445 | croak ("data structure too deep (hit recursion limit)"); |
447 | |
446 | |
448 | encode_ch (enc, '{'); |
447 | encode_ch (enc, '{'); |
… | |
… | |
1819 | SV *incr_text (JSON *self) |
1818 | SV *incr_text (JSON *self) |
1820 | ATTRS: lvalue |
1819 | ATTRS: lvalue |
1821 | CODE: |
1820 | CODE: |
1822 | { |
1821 | { |
1823 | if (self->incr_pos) |
1822 | if (self->incr_pos) |
1824 | croak ("incr_text can only be called after a successful incr_parse call in scalar context %d", self->incr_pos);//D |
1823 | croak ("incr_text can only be called after a successful incr_parse call in scalar context"); |
1825 | |
1824 | |
1826 | RETVAL = self->incr_text ? SvREFCNT_inc (self->incr_text) : &PL_sv_undef; |
1825 | RETVAL = self->incr_text ? SvREFCNT_inc (self->incr_text) : &PL_sv_undef; |
1827 | } |
1826 | } |
1828 | OUTPUT: |
1827 | OUTPUT: |
1829 | RETVAL |
1828 | RETVAL |
|
|
1829 | |
|
|
1830 | void incr_skip (JSON *self) |
|
|
1831 | CODE: |
|
|
1832 | { |
|
|
1833 | if (!self->incr_pos || !INCR_DONE (self)) |
|
|
1834 | croak ("incr_text can only be called after an unsuccessful incr_parse call in scalar context");//D |
|
|
1835 | |
|
|
1836 | sv_chop (self->incr_text, SvPV_nolen (self->incr_text) + self->incr_pos); |
|
|
1837 | self->incr_pos = 0; |
|
|
1838 | self->incr_nest = 0; |
|
|
1839 | self->incr_mode = 0; |
|
|
1840 | } |
1830 | |
1841 | |
1831 | void DESTROY (JSON *self) |
1842 | void DESTROY (JSON *self) |
1832 | CODE: |
1843 | CODE: |
1833 | SvREFCNT_dec (self->cb_sk_object); |
1844 | SvREFCNT_dec (self->cb_sk_object); |
1834 | SvREFCNT_dec (self->cb_object); |
1845 | SvREFCNT_dec (self->cb_object); |