--- JSON-XS/XS.xs 2007/06/23 22:56:08 1.42 +++ JSON-XS/XS.xs 2007/06/23 23:49:29 1.43 @@ -57,6 +57,7 @@ #define expect_true(expr) expect ((expr) != 0, 1) static HV *json_stash; // JSON::XS:: +static SV *json_true, *json_false; ///////////////////////////////////////////////////////////////////////////// // utility functions @@ -1033,7 +1034,7 @@ if (dec->end - dec->cur >= 4 && !memcmp (dec->cur, "true", 4)) { dec->cur += 4; - return newSViv (1); + return SvREFCNT_inc (json_true); } else ERR ("'true' expected"); @@ -1044,7 +1045,7 @@ if (dec->end - dec->cur >= 5 && !memcmp (dec->cur, "false", 5)) { dec->cur += 5; - return newSViv (0); + return SvREFCNT_inc (json_false); } else ERR ("'false' expected"); @@ -1165,6 +1166,9 @@ : -1; json_stash = gv_stashpv ("JSON::XS", 1); + + json_true = get_sv ("JSON::XS::true" , 1); SvREADONLY_on (json_true ); + json_false = get_sv ("JSON::XS::false", 1); SvREADONLY_on (json_false); } PROTOTYPES: DISABLE