… | |
… | |
1798 | if (GIMME_V != G_VOID) |
1798 | if (GIMME_V != G_VOID) |
1799 | do |
1799 | do |
1800 | { |
1800 | { |
1801 | STRLEN offset; |
1801 | STRLEN offset; |
1802 | |
1802 | |
1803 | incr_parse (self); |
|
|
1804 | |
|
|
1805 | if (!INCR_DONE (self)) |
1803 | if (!INCR_DONE (self)) |
|
|
1804 | { |
|
|
1805 | incr_parse (self); |
|
|
1806 | if (!INCR_DONE (self)) |
1806 | break; |
1807 | break; |
|
|
1808 | } |
1807 | |
1809 | |
1808 | XPUSHs (decode_json (self->incr_text, self, &offset)); |
1810 | XPUSHs (decode_json (self->incr_text, self, &offset)); |
1809 | |
1811 | |
1810 | sv_chop (self->incr_text, SvPV_nolen (self->incr_text) + offset); |
1812 | sv_chop (self->incr_text, SvPV_nolen (self->incr_text) + offset); |
1811 | self->incr_pos -= offset; |
1813 | self->incr_pos -= offset; |
… | |
… | |
1818 | SV *incr_text (JSON *self) |
1820 | SV *incr_text (JSON *self) |
1819 | ATTRS: lvalue |
1821 | ATTRS: lvalue |
1820 | CODE: |
1822 | CODE: |
1821 | { |
1823 | { |
1822 | if (self->incr_pos) |
1824 | if (self->incr_pos) |
1823 | croak ("incr_text can only be called after a successful incr_parse call in scalar context %d", self->incr_pos);//D |
1825 | croak ("incr_text can not be called when the incremental parser already started parsing"); |
1824 | |
1826 | |
1825 | RETVAL = self->incr_text ? SvREFCNT_inc (self->incr_text) : &PL_sv_undef; |
1827 | RETVAL = self->incr_text ? SvREFCNT_inc (self->incr_text) : &PL_sv_undef; |
1826 | } |
1828 | } |
1827 | OUTPUT: |
1829 | OUTPUT: |
1828 | RETVAL |
1830 | RETVAL |
|
|
1831 | |
|
|
1832 | void incr_skip (JSON *self) |
|
|
1833 | CODE: |
|
|
1834 | { |
|
|
1835 | if (self->incr_pos) |
|
|
1836 | { |
|
|
1837 | sv_chop (self->incr_text, SvPV_nolen (self->incr_text) + self->incr_pos); |
|
|
1838 | self->incr_pos = 0; |
|
|
1839 | self->incr_nest = 0; |
|
|
1840 | self->incr_mode = 0; |
|
|
1841 | } |
|
|
1842 | } |
1829 | |
1843 | |
1830 | void DESTROY (JSON *self) |
1844 | void DESTROY (JSON *self) |
1831 | CODE: |
1845 | CODE: |
1832 | SvREFCNT_dec (self->cb_sk_object); |
1846 | SvREFCNT_dec (self->cb_sk_object); |
1833 | SvREFCNT_dec (self->cb_object); |
1847 | SvREFCNT_dec (self->cb_object); |