mirror of https://gitee.com/bigwinds/arangodb
fixed memory issues
This commit is contained in:
parent
b642b48603
commit
e906fe374c
|
@ -802,8 +802,9 @@ static TRI_vector_string_t StoreSymbols (TRI_aql_codegen_js_t* const generator,
|
|||
n = peek->_variables._nrAlloc;
|
||||
for (j = 0; j < n; ++j) {
|
||||
TRI_aql_codegen_variable_t* variable = (TRI_aql_codegen_variable_t*) peek->_variables._table[j];
|
||||
char* copy;
|
||||
|
||||
if (!variable) {
|
||||
if (! variable) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -813,8 +814,14 @@ static TRI_vector_string_t StoreSymbols (TRI_aql_codegen_js_t* const generator,
|
|||
ScopeOutput(generator, " = ");
|
||||
ScopeOutputRegister(generator, variable->_register);
|
||||
ScopeOutput(generator, ";\n");
|
||||
|
||||
TRI_PushBackVectorString(&variableNames, TRI_DuplicateString(variable->_name));
|
||||
|
||||
copy = TRI_DuplicateStringZ(TRI_UNKNOWN_MEM_ZONE, variable->_name);
|
||||
if (copy == NULL) {
|
||||
generator->_errorCode = TRI_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
else {
|
||||
TRI_PushBackVectorString(&variableNames, copy);
|
||||
}
|
||||
}
|
||||
|
||||
// break if we reached the top level for loop
|
||||
|
|
|
@ -410,7 +410,7 @@ char* TRI_RegisterStringAql (TRI_aql_context_t* const context,
|
|||
|
||||
if (deescape) {
|
||||
size_t outLength;
|
||||
copy = TRI_UnescapeUtf8String(value, length, &outLength);
|
||||
copy = TRI_UnescapeUtf8StringZ(TRI_UNKNOWN_MEM_ZONE, value, length, &outLength);
|
||||
}
|
||||
else {
|
||||
copy = TRI_DuplicateStringZ(TRI_UNKNOWN_MEM_ZONE, value);
|
||||
|
|
|
@ -341,13 +341,18 @@ bool TRI_ValueJavascriptAql (TRI_string_buffer_t* const buffer,
|
|||
return false;
|
||||
}
|
||||
|
||||
escapedString = TRI_EscapeUtf8String(value->_value._string, strlen(value->_value._string), false, &outLength);
|
||||
if (!escapedString) {
|
||||
escapedString = TRI_EscapeUtf8StringZ(TRI_UNKNOWN_MEM_ZONE,
|
||||
value->_value._string,
|
||||
strlen(value->_value._string),
|
||||
false,
|
||||
&outLength);
|
||||
if (escapedString == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (TRI_AppendStringStringBuffer(buffer, escapedString) != TRI_ERROR_NO_ERROR) {
|
||||
TRI_Free(TRI_UNKNOWN_MEM_ZONE, escapedString);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -2426,7 +2426,7 @@ TRI_json_t* TRI_Json2String (TRI_memory_zone_t* zone, char const* text, char** e
|
|||
|
||||
if (error != NULL) {
|
||||
if (yyextra._message != NULL) {
|
||||
*error = TRI_DuplicateString(yyextra._message);
|
||||
*error = TRI_DuplicateStringZ(zone, yyextra._message);
|
||||
}
|
||||
else {
|
||||
*error = NULL;
|
||||
|
@ -2489,7 +2489,7 @@ TRI_json_t* TRI_JsonFile (TRI_memory_zone_t* zone, char const* path, char** erro
|
|||
|
||||
if (error != NULL) {
|
||||
if (yyextra._message != NULL) {
|
||||
*error = TRI_DuplicateString(yyextra._message);
|
||||
*error = TRI_DuplicateStringZ(zone, yyextra._message);
|
||||
}
|
||||
else {
|
||||
*error = NULL;
|
||||
|
|
Loading…
Reference in New Issue