diff --git a/arangod/Aql/Executor.cpp b/arangod/Aql/Executor.cpp index 3e4b5d42d4..61f122b78f 100644 --- a/arangod/Aql/Executor.cpp +++ b/arangod/Aql/Executor.cpp @@ -474,13 +474,15 @@ void Executor::generateCodeString (std::string const& value) { } //////////////////////////////////////////////////////////////////////////////// -/// @brief generate JavaScript code for a list +/// @brief generate JavaScript code for an array //////////////////////////////////////////////////////////////////////////////// -void Executor::generateCodeList (AstNode const* node) { +void Executor::generateCodeArray (AstNode const* node) { TRI_ASSERT(node != nullptr); size_t const n = node->numMembers(); + // very conservative minimum bound + _buffer->reserve(2 + n * 3); _buffer->appendChar('['); for (size_t i = 0; i < n; ++i) { @@ -494,13 +496,15 @@ void Executor::generateCodeList (AstNode const* node) { } //////////////////////////////////////////////////////////////////////////////// -/// @brief generate JavaScript code for an array +/// @brief generate JavaScript code for an object //////////////////////////////////////////////////////////////////////////////// -void Executor::generateCodeArray (AstNode const* node) { +void Executor::generateCodeObject (AstNode const* node) { TRI_ASSERT(node != nullptr); size_t const n = node->numMembers(); + // very conservative minimum bound + _buffer->reserve(2 + n * 6); _buffer->appendChar('{'); for (size_t i = 0; i < n; ++i) { @@ -840,11 +844,11 @@ void Executor::generateCodeNode (AstNode const* node) { break; case NODE_TYPE_ARRAY: - generateCodeList(node); + generateCodeArray(node); break; case NODE_TYPE_OBJECT: - generateCodeArray(node); + generateCodeObject(node); break; case NODE_TYPE_OPERATOR_UNARY_PLUS: diff --git a/arangod/Aql/Executor.h b/arangod/Aql/Executor.h index bac4fdffc3..589b90e30a 100644 --- a/arangod/Aql/Executor.h +++ b/arangod/Aql/Executor.h @@ -129,18 +129,18 @@ namespace triagens { void generateCodeString (std::string const&); -//////////////////////////////////////////////////////////////////////////////// -/// @brief generate JavaScript code for a list -//////////////////////////////////////////////////////////////////////////////// - - void generateCodeList (AstNode const*); - //////////////////////////////////////////////////////////////////////////////// /// @brief generate JavaScript code for an array //////////////////////////////////////////////////////////////////////////////// void generateCodeArray (AstNode const*); +//////////////////////////////////////////////////////////////////////////////// +/// @brief generate JavaScript code for an object +//////////////////////////////////////////////////////////////////////////////// + + void generateCodeObject (AstNode const*); + //////////////////////////////////////////////////////////////////////////////// /// @brief generate JavaScript code for a unary operator ////////////////////////////////////////////////////////////////////////////////