void TRI_FreeContextAql (TRI_aql_context_t* const context) {
  TRI_ASSERT(context != NULL);

  LOG_TRACE("freeing context");

  // release all scopes
  TRI_FreeScopesAql(context);

  FreeStrings(context);
  FreeNodes(context);

  // free parameter names hash
  TRI_DestroyAssociativePointer(&context->_parameters._names);

  // free collection names
  TRI_DestroyAssociativePointer(&context->_collectionNames);

  FreeCollections(context);

  // free parameter values
  TRI_FreeBindParametersAql(context);
  TRI_DestroyAssociativePointer(&context->_parameters._values);

  // free parser/lexer
  TRI_FreeParserAql(context->_parser);

  // free statement list
  TRI_FreeStatementListAql(context->_statements);

  // free error struct
  TRI_DestroyErrorAql(&context->_error);

  TRI_Free(TRI_UNKNOWN_MEM_ZONE, context);
}
Example #2
0
void TRI_FreeErrorAql (TRI_aql_error_t* const error) {
  assert(error);

  TRI_DestroyErrorAql(error);
  TRI_Free(TRI_UNKNOWN_MEM_ZONE, error);
}