--- parser3/src/classes/json.C 2016/05/24 17:48:37 1.42 +++ parser3/src/classes/json.C 2016/09/29 18:49:42 1.45 @@ -18,7 +18,7 @@ #include "pa_vxdoc.h" #endif -volatile const char * IDENT_JSON_C="$Id: json.C,v 1.42 2016/05/24 17:48:37 moko Exp $"; +volatile const char * IDENT_JSON_C="$Id: json.C,v 1.45 2016/09/29 18:49:42 moko Exp $"; // class @@ -95,7 +95,7 @@ static void set_json_value(Json *json, V String* json_string(Json *json, const char *value, uint32_t length){ String::C result = json->charset !=NULL ? - Charset::transcode(String::C(value, length), UTF8_charset, *json->charset) : + Charset::transcode(String::C(value, length), pa_UTF8_charset, *json->charset) : String::C(pa_strdup(value, length), length); return new String(result, json->taint); } @@ -107,7 +107,7 @@ static Value *json_hook(Request &r, Junc frame.store_params(params, 2); r.execute_method(frame); - return &frame.result().as_value(); + return &frame.result(); } static int json_callback(Json *json, int type, const char *value, uint32_t length) @@ -337,7 +337,7 @@ static void _parse(Request& r, MethodPar } const String::Body json_body = json_string.cstr_to_string_body_untaint(String::L_JSON, r.connection(false), &r.charsets); - const char *json_cstr = json.charset != NULL ? Charset::transcode(json_body, *json.charset, UTF8_charset).cstr() : json_body.cstr(); + const char *json_cstr = json.charset != NULL ? Charset::transcode(json_body, *json.charset, pa_UTF8_charset).cstr() : json_body.cstr(); json_parser parser; if(int result = json_parser_init(&parser, &config, (json_parser_callback)&json_callback, &json)) @@ -518,11 +518,11 @@ static void _string(Request& r, MethodPa throw Exception(PARSER_RUNTIME, 0, CALLED_WITH_INVALID_OPTION); // special handling for $._default - if(VHash* vhash=static_cast(params[1].as(VHASH_TYPE))) + if(VHashBase* vhash=static_cast(params[1].as(VHASH_TYPE))) if(Value* value=vhash->get_default()) { if(!value->is_string()){ - Junction* junction=value->get_junction(); - if(!junction || !junction->method || !junction->method->params_names || junction->method->params_names->count() != 3) + Junction* junction=value->get_junction(); + if(!junction || !junction->method || !junction->method->params_names || junction->method->params_names->count() != 3) throw Exception(PARSER_RUNTIME, 0, "$._default must be string or parser method with 3 parameters"); } json.default_method=value;