From 5be32e9fe5d5b67f86de38c08f6c743da25c4d0a Mon Sep 17 00:00:00 2001 From: jsteemann Date: Thu, 12 May 2016 16:46:52 +0200 Subject: [PATCH] attempt to speed up dumper --- arangod/RestHandler/RestBaseHandler.cpp | 10 +++++----- lib/Basics/VelocyPackDumper.cpp | 9 +-------- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/arangod/RestHandler/RestBaseHandler.cpp b/arangod/RestHandler/RestBaseHandler.cpp index b89405ab04..ba01f347c0 100644 --- a/arangod/RestHandler/RestBaseHandler.cpp +++ b/arangod/RestHandler/RestBaseHandler.cpp @@ -152,11 +152,11 @@ void RestBaseHandler::writeResult(arangodb::velocypack::Slice const& slice, _response->setContentType(HttpResponse::CONTENT_TYPE_JSON); try { - //arangodb::basics::VelocyPackDumper dumper(&(_response->body()), &options); - //dumper.dumpValue(slice); - VPackStringBufferAdapter buffer(_response->body().stringBuffer()); - VPackDumper dumper(&buffer, &options); - dumper.dump(slice); + arangodb::basics::VelocyPackDumper dumper(&(_response->body()), &options); + dumper.dumpValue(slice); + //VPackStringBufferAdapter buffer(_response->body().stringBuffer()); + //VPackDumper dumper(&buffer, &options); + //dumper.dump(slice); } catch (std::exception const& ex) { generateError(GeneralResponse::ResponseCode::SERVER_ERROR, TRI_ERROR_INTERNAL, ex.what()); } catch (...) { diff --git a/lib/Basics/VelocyPackDumper.cpp b/lib/Basics/VelocyPackDumper.cpp index 3cb5f86133..537b4ec60a 100644 --- a/lib/Basics/VelocyPackDumper.cpp +++ b/lib/Basics/VelocyPackDumper.cpp @@ -425,14 +425,7 @@ void VelocyPackDumper::dumpValue(VPackSlice const* slice, VPackSlice const* base case VPackValueType::String: { VPackValueLength len; char const* p = slice->getString(len); - if (len == 0) { - int res = TRI_AppendString2StringBuffer(buffer, "\"\"", 2); - if (res != TRI_ERROR_NO_ERROR) { - THROW_ARANGO_EXCEPTION(TRI_ERROR_OUT_OF_MEMORY); - } - } else { - appendString(p, len); - } + appendString(p, len); break; }