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 access to potentially uninitialised variable when collection had a cap constraint
|
||||
|
||||
|
||||
v1.4.10 (2014-02-21)
|
||||
--------------------
|
||||
|
|
|
@ -1262,8 +1262,9 @@ static void GenerateHashAccess (TRI_aql_codegen_js_t* const generator,
|
|||
ScopeOutput(generator, ")");
|
||||
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, collectionName);
|
||||
ScopeOutput(generator, "', ");
|
||||
|
@ -1407,7 +1408,8 @@ static void GenerateSkiplistAccess (TRI_aql_codegen_js_t* const generator,
|
|||
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, collectionName);
|
||||
ScopeOutput(generator, "', ");
|
||||
|
@ -1527,8 +1529,9 @@ static void GenerateBitarrayAccess (TRI_aql_codegen_js_t* const generator,
|
|||
ScopeOutput(generator, ")");
|
||||
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, collectionName);
|
||||
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
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static bool CanUseIndex (const TRI_index_t* const idx) {
|
||||
static bool CanUseIndex (TRI_index_t const* idx) {
|
||||
if (idx->_fields._length == 0) {
|
||||
// index should contain at least one field
|
||||
return false;
|
||||
|
|
|
@ -296,6 +296,7 @@ TRI_index_t* TRI_CreateCapConstraint (struct TRI_primary_collection_s* primary,
|
|||
|
||||
idx->typeName = TypeNameCapConstraint;
|
||||
TRI_InitIndex(idx, TRI_IDX_TYPE_CAP_CONSTRAINT, primary, false, true);
|
||||
TRI_InitVectorString(&idx->_fields, TRI_CORE_MEM_ZONE);
|
||||
|
||||
idx->json = JsonCapConstraint;
|
||||
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) {
|
||||
TRI_DestroyVectorString(&idx->_fields);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
Loading…
Reference in New Issue