1
0
Fork 0

fixed uninitialised variable access

This commit is contained in:
Jan Steemann 2014-02-24 17:48:56 +01:00
parent bb3704e04b
commit edb0e61e13
4 changed files with 13 additions and 6 deletions

View File

@ -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)
--------------------

View File

@ -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, "', ");

View File

@ -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;

View File

@ -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);
}
////////////////////////////////////////////////////////////////////////////////