diff options
| author | George Hazan <george.hazan@gmail.com> | 2013-08-05 22:23:17 +0000 | 
|---|---|---|
| committer | George Hazan <george.hazan@gmail.com> | 2013-08-05 22:23:17 +0000 | 
| commit | 300b0d6897c31b9250dd6a60746646b036986983 (patch) | |
| tree | 71066e1595776ed0e53efb0d1a91bd1b2c639d20 /src | |
| parent | edae1aa833a1223ca2e0b14d454fa114b3f0213b (diff) | |
fix for massive memory leak in json parser
git-svn-id: http://svn.miranda-ng.org/main/trunk@5593 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'src')
| -rw-r--r-- | src/mir_core/json/JSONNode.h | 4 | ||||
| -rw-r--r-- | src/mir_core/json/internalJSONNode.h | 6 | ||||
| -rw-r--r-- | src/mir_core/json/libJSON.cpp | 6 | 
3 files changed, 8 insertions, 8 deletions
diff --git a/src/mir_core/json/JSONNode.h b/src/mir_core/json/JSONNode.h index 487925b04f..27dbef2aee 100644 --- a/src/mir_core/json/JSONNode.h +++ b/src/mir_core/json/JSONNode.h @@ -93,7 +93,7 @@ public:  	void clear(void);
  	unsigned char type(void) const;
 -	json_string name(void) const;
 +	const json_char* name(void) const;
  	void set_name(const json_string & newname);
  	#ifdef JSON_COMMENTS
  		void set_comment(const json_string & comment);
 @@ -505,7 +505,7 @@ inline unsigned char JSONNode::type(void) const {  	JSON_CHECK_INTERNAL();
  	return internal -> type();
  }
 -inline json_string JSONNode::name(void) const {
 +inline const json_char* JSONNode::name(void) const {
  	JSON_CHECK_INTERNAL();
  	return internal -> name();
  }
 diff --git a/src/mir_core/json/internalJSONNode.h b/src/mir_core/json/internalJSONNode.h index 8832bbd828..9ed7680a45 100644 --- a/src/mir_core/json/internalJSONNode.h +++ b/src/mir_core/json/internalJSONNode.h @@ -81,7 +81,7 @@ public:  	bool empty(void) const;
  	unsigned char type(void) const;
 -	json_string name(void) const;
 +	const json_char* name(void) const;
  	void setname(const json_string & newname);
  	#ifdef JSON_COMMENTS
  		void setcomment(const json_string & comment);
 @@ -260,8 +260,8 @@ inline unsigned char internalJSONNode::type(void) const {  	#endif
  }
 -inline json_string internalJSONNode::name(void) const {
 -	return _name;
 +inline const json_char* internalJSONNode::name(void) const {
 +	return _name.c_str();
  }
  inline void internalJSONNode::setname(const json_string & newname){
 diff --git a/src/mir_core/json/libJSON.cpp b/src/mir_core/json/libJSON.cpp index 077af1b961..e3599e8936 100644 --- a/src/mir_core/json/libJSON.cpp +++ b/src/mir_core/json/libJSON.cpp @@ -266,9 +266,9 @@ MIR_CORE_DLL(int) json_empty(const JSONNODE * node){  	return (int)(((JSONNode*)node) -> empty());
  }
 -MIR_CORE_DLL(json_char*) json_name(const JSONNODE * node){
 -	JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_name"), return toCString(EMPTY_CSTRING););
 -	return toCString(((JSONNode*)node) -> name());
 +MIR_CORE_DLL(const json_char*) json_name(const JSONNODE * node){
 +	JSON_ASSERT_SAFE(node, JSON_TEXT("null node to json_name"), return EMPTY_CSTRING;);
 +	return ((JSONNode*)node) -> name();
  }
  #ifdef JSON_COMMENTS
  | 
