1
0
Fork 0

fixed memory issues

This commit is contained in:
Jan Steemann 2012-10-11 14:17:19 +02:00
parent b642b48603
commit e906fe374c
4 changed files with 20 additions and 8 deletions

View File

@ -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

View File

@ -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);

View File

@ -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;
}

View File

@ -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;