From d00fd2a83311e1ff49da3cfec34446b03fb59a72 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Wilfried=20G=C3=B6esgens?= Date: Mon, 26 Jan 2009 00:28:20 +0000 Subject: [PATCH] * json doesn't need to escape singlequotes + add possibility to json serializer to free the struct, so usage gets smarter * make params of wildfire calls similar * take 1st frame to find binary name, as 0 will be libcitadel --- libcitadel/lib/json.c | 10 ++++++---- libcitadel/lib/libcitadel.h | 6 +++--- libcitadel/lib/stringbuf.c | 5 ----- libcitadel/lib/wildfire.c | 8 ++++---- 4 files changed, 13 insertions(+), 16 deletions(-) diff --git a/libcitadel/lib/json.c b/libcitadel/lib/json.c index 044be9cdf..8690f4e2b 100644 --- a/libcitadel/lib/json.c +++ b/libcitadel/lib/json.c @@ -179,7 +179,7 @@ void JsonObjectAppend(JsonValue *Array, JsonValue *Val) -void SerializeJson(StrBuf *Target, JsonValue *Val) +void SerializeJson(StrBuf *Target, JsonValue *Val, int FreeVal) { void *vValue, *vPrevious; JsonValue *SubVal; @@ -215,7 +215,7 @@ void SerializeJson(StrBuf *Target, JsonValue *Val) StrBufAppendBufPlain(Target, HKEY(","), 0); SubVal = (JsonValue*) vValue; - SerializeJson(Target, SubVal); + SerializeJson(Target, SubVal, 0); vPrevious = vValue; } StrBufAppendBufPlain(Target, HKEY("]"), 0); @@ -237,13 +237,15 @@ void SerializeJson(StrBuf *Target, JsonValue *Val) StrBufAppendBuf(Target, SubVal->Name, 0); StrBufAppendBufPlain(Target, HKEY("\":"), 0); - SerializeJson(Target, SubVal); + SerializeJson(Target, SubVal, 0); vPrevious = vValue; } StrBufAppendBufPlain(Target, HKEY("}"), 0); break; } - + if(FreeVal) { + DeleteJSONValue(Val); + } } diff --git a/libcitadel/lib/libcitadel.h b/libcitadel/lib/libcitadel.h index a20bf1a1d..6137d0f14 100644 --- a/libcitadel/lib/libcitadel.h +++ b/libcitadel/lib/libcitadel.h @@ -485,7 +485,7 @@ void JsonArrayAppend(JsonValue *Array, JsonValue *Val); void JsonObjectAppend(JsonValue *Array, JsonValue *Val); -void SerializeJson(StrBuf *Target, JsonValue *Val); +void SerializeJson(StrBuf *Target, JsonValue *Val, int FreeVal); @@ -505,9 +505,9 @@ typedef enum _WF_MessageType { eEXCEPTION } WF_MessageType; -JsonValue *WildFireException(StrBuf *Message, - const char *Filename, long FileLen, +JsonValue *WildFireException(const char *Filename, long FileLen, long LineNo, + StrBuf *Message, int StackOffset); void WildFireAddArray(JsonValue *ReportBase, JsonValue *Array, WF_MessageType Type); diff --git a/libcitadel/lib/stringbuf.c b/libcitadel/lib/stringbuf.c index e3e1e239c..de57379da 100644 --- a/libcitadel/lib/stringbuf.c +++ b/libcitadel/lib/stringbuf.c @@ -653,11 +653,6 @@ long StrECMAEscAppend(StrBuf *Target, const StrBuf *Source, const char *PlainIn) memcpy(bptr, "\\\"", 2); bptr += 2; Target->BufUsed += 2; - } - else if (*aptr == '\'') { - memcpy(bptr, "\\\'", 2); - bptr += 2; - Target->BufUsed += 2; } else if (*aptr == '\\') { memcpy(bptr, "\\\\", 2); bptr += 2; diff --git a/libcitadel/lib/wildfire.c b/libcitadel/lib/wildfire.c index 9fe53faa2..6d6669034 100644 --- a/libcitadel/lib/wildfire.c +++ b/libcitadel/lib/wildfire.c @@ -23,10 +23,10 @@ ConstStr WF_MsgStrs[] = { + {HKEY("LOG")}, {HKEY("INFO")}, {HKEY("WARN")}, {HKEY("ERROR")}, - {HKEY("LOG")}, {HKEY("TRACE")}, {HKEY("EXCEPTION")} }; @@ -218,7 +218,7 @@ void WildFireInitBacktrace(const char *argvNull, int AddBaseFrameSkip) BaseFrames --; BaseFrames += AddBaseFrameSkip; strings = backtrace_symbols(stack_frames, size); - for (i = 0; i < size; i++) { + for (i = 1; i < size; i++) { if (strings != NULL){ ParseBacktrace(strings[i], Function, FileName, @@ -258,9 +258,9 @@ void WildFireInitBacktrace(const char *argvNull, int AddBaseFrameSkip) } -JsonValue *WildFireException(StrBuf *Message, - const char *Filename, long FileLen, +JsonValue *WildFireException(const char *Filename, long FileLen, long LineNo, + StrBuf *Message, int StackOffset) { JsonValue *ExcClass; -- 2.39.2