diff --git a/lib/V8/v8-conv.cpp b/lib/V8/v8-conv.cpp index 704b39657a..b0bbeda2e4 100644 --- a/lib/V8/v8-conv.cpp +++ b/lib/V8/v8-conv.cpp @@ -1459,7 +1459,7 @@ TRI_json_t* TRI_ObjectToJson (v8::Handle parameter) { if (*str != 0) { TRI_json_t* j = TRI_CreateString2Json(TRI_UNKNOWN_MEM_ZONE, *str, str.length()); // this passes ownership for the utf8 string to the JSON object - str.disown(); + str.steal(); // the Utf8ValueNFC dtor won't free the string now return j; @@ -1507,7 +1507,7 @@ TRI_json_t* TRI_ObjectToJson (v8::Handle parameter) { // move the string pointer into the JSON object TRI_Insert4ArrayJson(TRI_UNKNOWN_MEM_ZONE, arrayJson, *str, str.length(), result, false); // this passes ownership for the utf8 string to the JSON object - str.disown(); + str.steal(); } TRI_Free(TRI_UNKNOWN_MEM_ZONE, result); diff --git a/lib/V8/v8-utils.h b/lib/V8/v8-utils.h index f3d71c1df0..c5ad1b9924 100644 --- a/lib/V8/v8-utils.h +++ b/lib/V8/v8-utils.h @@ -51,7 +51,7 @@ class TRI_Utf8ValueNFC { char* operator* () { return _str; } const char* operator* () const { return _str; } size_t length () const { return _length; } - void disown () { _str = 0; } + char* steal () { char* tmp = _str; _str = 0; return tmp; } private: char* _str; size_t _length;