--- parser3/src/classes/json.C 2017/01/23 12:43:36 1.50 +++ parser3/src/classes/json.C 2017/12/03 23:13:49 1.54 @@ -1,7 +1,7 @@ /** @file Parser: @b json parser class. - Copyright (c) 2000-2015 Art. Lebedev Studio (http://www.artlebedev.com) + Copyright (c) 2000-2017 Art. Lebedev Studio (http://www.artlebedev.com) */ #include "classes.h" @@ -18,7 +18,7 @@ #include "pa_vxdoc.h" #endif -volatile const char * IDENT_JSON_C="$Id: json.C,v 1.50 2017/01/23 12:43:36 moko Exp $"; +volatile const char * IDENT_JSON_C="$Id: json.C,v 1.54 2017/12/03 23:13:49 moko Exp $"; // class @@ -32,7 +32,7 @@ public: DECLARE_CLASS_VAR(json, new MJson); // methods -struct Json { +struct Json : public PA_Allocated { Stack stack; Stack key_stack; @@ -66,7 +66,7 @@ struct Json { static void set_json_value(Json *json, Value *value){ VHash *top = json->stack.top_value(); if(json->key == NULL){ - top->hash().put(String(format(top->get_hash()->count(), 0)), value); + top->hash().put(format(top->get_hash()->count(), 0), value); } else { switch (json->distinct){ case Json::D_EXCEPTION: @@ -366,7 +366,7 @@ const uint ANTI_ENDLESS_JSON_STRING_RECO char *get_indent(uint level){ static char* cache[ANTI_ENDLESS_JSON_STRING_RECOURSION]={}; if (!cache[level]){ - char *result = static_cast(pa_gc_malloc_atomic(level+1)); + char *result = static_cast(pa_malloc_atomic(level+1)); memset(result, '\t', level); result[level]='\0'; return cache[level]=result;