1
0
Fork 0

Removed TRI_json_t constructor from TraverserExpression. It is only possible to be build from VPack

This commit is contained in:
Michael Hackstein 2015-12-04 16:49:49 +01:00
parent b137e9471e
commit fd00792ac1
3 changed files with 1 additions and 35 deletions

View File

@ -561,9 +561,7 @@ void RestSimpleHandler::lookupByKeys (VPackSlice const& slice) {
for (auto const& it : VPackArrayIterator(postFilter)) {
if (it.isObject()) {
std::string json = it.toJson(); // TODO: remove me later
std::unique_ptr<TRI_json_t> exp(TRI_JsonString(TRI_UNKNOWN_MEM_ZONE, json.c_str())); // TODO: remove me later
std::unique_ptr<traverser::TraverserExpression> expression(new traverser::TraverserExpression(exp.get()));
std::unique_ptr<traverser::TraverserExpression> expression(new traverser::TraverserExpression(it));
expressions.emplace_back(expression.get());
expression.release();
}

View File

@ -88,36 +88,6 @@ TraverserExpression::TraverserExpression (VPackSlice const& slice) {
varAccess = new aql::AstNode(registerNode, registerString, varNode);
}
////////////////////////////////////////////////////////////////////////////////
/// @brief Creates an expression from a TRI_json_t*
////////////////////////////////////////////////////////////////////////////////
TraverserExpression::TraverserExpression (TRI_json_t const* json) {
isEdgeAccess = basics::JsonHelper::checkAndGetBooleanValue(json, "isEdgeAccess");
comparisonType = static_cast<aql::AstNodeType>(basics::JsonHelper::checkAndGetNumericValue<uint32_t>(json, "comparisonType"));
auto registerNode = [&](aql::AstNode const* node) -> void {
_nodeRegister.emplace_back(node);
};
auto registerString = [&](std::string const& str) -> char const* {
std::unique_ptr<std::string> copy(new std::string(str.c_str(), str.size()));
_stringRegister.emplace_back(copy.get());
auto p = copy.release();
TRI_ASSERT(p != nullptr);
TRI_ASSERT(p->c_str() != nullptr);
return p->c_str(); // should never change its position, even if vector grows/shrinks
};
triagens::basics::Json varNode(TRI_UNKNOWN_MEM_ZONE, basics::JsonHelper::checkAndGetObjectValue(json, "varAccess"), triagens::basics::Json::NOFREE);
compareTo.reset(new triagens::basics::Json(TRI_UNKNOWN_MEM_ZONE, basics::JsonHelper::getObjectElement(json, "compareTo"), triagens::basics::Json::NOFREE));
if (compareTo->json() == nullptr) {
THROW_ARANGO_EXCEPTION_MESSAGE(TRI_ERROR_INTERNAL, "invalid compareTo value");
}
// If this fails everything before does not leak
varAccess = new aql::AstNode(registerNode, registerString, varNode);
}
////////////////////////////////////////////////////////////////////////////////
/// @brief transforms the expression into json
////////////////////////////////////////////////////////////////////////////////

View File

@ -115,8 +115,6 @@ namespace triagens {
compareTo(nullptr) {
}
explicit TraverserExpression (TRI_json_t const*);
explicit TraverserExpression (VPackSlice const& slice);
virtual ~TraverserExpression () {