mirror of https://gitee.com/bigwinds/arangodb
fixed uninitialised variable access
This commit is contained in:
parent
bb3704e04b
commit
edb0e61e13
|
@ -3,6 +3,8 @@ v1.4.11 (XXXX-XX-XX)
|
||||||
|
|
||||||
* fixed small memleak in AQL optimiser
|
* fixed small memleak in AQL optimiser
|
||||||
|
|
||||||
|
* fixed access to potentially uninitialised variable when collection had a cap constraint
|
||||||
|
|
||||||
|
|
||||||
v1.4.10 (2014-02-21)
|
v1.4.10 (2014-02-21)
|
||||||
--------------------
|
--------------------
|
||||||
|
|
|
@ -1262,8 +1262,9 @@ static void GenerateHashAccess (TRI_aql_codegen_js_t* const generator,
|
||||||
ScopeOutput(generator, ")");
|
ScopeOutput(generator, ")");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fieldAccess->_value._reference._operator == TRI_AQL_NODE_OPERATOR_BINARY_IN) {
|
if (fieldAccess->_type == TRI_AQL_ACCESS_REFERENCE &&
|
||||||
|
fieldAccess->_value._reference._operator == TRI_AQL_NODE_OPERATOR_BINARY_IN) {
|
||||||
ScopeOutput(generator, "aql.GET_DOCUMENTS_HASH_LIST('");
|
ScopeOutput(generator, "aql.GET_DOCUMENTS_HASH_LIST('");
|
||||||
ScopeOutput(generator, collectionName);
|
ScopeOutput(generator, collectionName);
|
||||||
ScopeOutput(generator, "', ");
|
ScopeOutput(generator, "', ");
|
||||||
|
@ -1407,7 +1408,8 @@ static void GenerateSkiplistAccess (TRI_aql_codegen_js_t* const generator,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fieldAccess->_value._reference._operator == TRI_AQL_NODE_OPERATOR_BINARY_IN) {
|
if (fieldAccess->_type == TRI_AQL_ACCESS_REFERENCE &&
|
||||||
|
fieldAccess->_value._reference._operator == TRI_AQL_NODE_OPERATOR_BINARY_IN) {
|
||||||
ScopeOutput(generator, "aql.GET_DOCUMENTS_SKIPLIST_LIST('");
|
ScopeOutput(generator, "aql.GET_DOCUMENTS_SKIPLIST_LIST('");
|
||||||
ScopeOutput(generator, collectionName);
|
ScopeOutput(generator, collectionName);
|
||||||
ScopeOutput(generator, "', ");
|
ScopeOutput(generator, "', ");
|
||||||
|
@ -1527,8 +1529,9 @@ static void GenerateBitarrayAccess (TRI_aql_codegen_js_t* const generator,
|
||||||
ScopeOutput(generator, ")");
|
ScopeOutput(generator, ")");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fieldAccess->_value._reference._operator == TRI_AQL_NODE_OPERATOR_BINARY_IN) {
|
if (fieldAccess->_type == TRI_AQL_ACCESS_REFERENCE &&
|
||||||
|
fieldAccess->_value._reference._operator == TRI_AQL_NODE_OPERATOR_BINARY_IN) {
|
||||||
ScopeOutput(generator, "aql.GET_DOCUMENTS_BITARRAY_LIST('");
|
ScopeOutput(generator, "aql.GET_DOCUMENTS_BITARRAY_LIST('");
|
||||||
ScopeOutput(generator, collectionName);
|
ScopeOutput(generator, collectionName);
|
||||||
ScopeOutput(generator, "', ");
|
ScopeOutput(generator, "', ");
|
||||||
|
|
|
@ -253,7 +253,7 @@ static TRI_aql_index_t* PickIndex (TRI_aql_context_t* const context,
|
||||||
/// @brief check eligibility of an index for further inspection
|
/// @brief check eligibility of an index for further inspection
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
static bool CanUseIndex (const TRI_index_t* const idx) {
|
static bool CanUseIndex (TRI_index_t const* idx) {
|
||||||
if (idx->_fields._length == 0) {
|
if (idx->_fields._length == 0) {
|
||||||
// index should contain at least one field
|
// index should contain at least one field
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -296,6 +296,7 @@ TRI_index_t* TRI_CreateCapConstraint (struct TRI_primary_collection_s* primary,
|
||||||
|
|
||||||
idx->typeName = TypeNameCapConstraint;
|
idx->typeName = TypeNameCapConstraint;
|
||||||
TRI_InitIndex(idx, TRI_IDX_TYPE_CAP_CONSTRAINT, primary, false, true);
|
TRI_InitIndex(idx, TRI_IDX_TYPE_CAP_CONSTRAINT, primary, false, true);
|
||||||
|
TRI_InitVectorString(&idx->_fields, TRI_CORE_MEM_ZONE);
|
||||||
|
|
||||||
idx->json = JsonCapConstraint;
|
idx->json = JsonCapConstraint;
|
||||||
idx->removeIndex = RemoveIndexCapConstraint;
|
idx->removeIndex = RemoveIndexCapConstraint;
|
||||||
|
@ -316,6 +317,7 @@ TRI_index_t* TRI_CreateCapConstraint (struct TRI_primary_collection_s* primary,
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
void TRI_DestroyCapConstraint (TRI_index_t* idx) {
|
void TRI_DestroyCapConstraint (TRI_index_t* idx) {
|
||||||
|
TRI_DestroyVectorString(&idx->_fields);
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
Loading…
Reference in New Issue