ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/JSON-XS/XS.xs
(Generate patch)

Comparing JSON-XS/XS.xs (file contents):
Revision 1.79 by root, Tue Mar 25 23:00:31 2008 UTC vs.
Revision 1.82 by root, Wed Mar 26 02:35:45 2008 UTC

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;
1818SV *incr_text (JSON *self) 1820SV *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"); 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
1829 1831
1830void incr_skip (JSON *self) 1832void incr_skip (JSON *self)
1831 CODE: 1833 CODE:
1832{ 1834{
1833 if (!self->incr_pos || !INCR_DONE (self)) 1835 if (self->incr_pos)
1834 croak ("incr_text can only be called after an unsuccessful incr_parse call in scalar context");//D 1836 {
1835
1836 sv_chop (self->incr_text, SvPV_nolen (self->incr_text) + self->incr_pos); 1837 sv_chop (self->incr_text, SvPV_nolen (self->incr_text) + self->incr_pos);
1837 self->incr_pos = 0; 1838 self->incr_pos = 0;
1838 self->incr_nest = 0; 1839 self->incr_nest = 0;
1839 self->incr_mode = 0; 1840 self->incr_mode = 0;
1841 }
1840} 1842}
1841 1843
1842void DESTROY (JSON *self) 1844void DESTROY (JSON *self)
1843 CODE: 1845 CODE:
1844 SvREFCNT_dec (self->cb_sk_object); 1846 SvREFCNT_dec (self->cb_sk_object);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines