mirror of https://gitee.com/bigwinds/arangodb
some cleanup
This commit is contained in:
parent
0c732dfc69
commit
be39dbd419
|
@ -415,6 +415,31 @@ static void FreeDatafilesVector (TRI_vector_pointer_t* const vector) {
|
||||||
TRI_DestroyVectorPointer(vector);
|
TRI_DestroyVectorPointer(vector);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// @brief iterate over all datafiles in a vector
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
static bool IterateDatafilesVector (const TRI_vector_pointer_t* const files,
|
||||||
|
bool (*iterator)(TRI_df_marker_t const*, void*, TRI_datafile_t*, bool),
|
||||||
|
void* data) {
|
||||||
|
size_t i, n;
|
||||||
|
|
||||||
|
n = files->_length;
|
||||||
|
for (i = 0; i < n; ++i) {
|
||||||
|
TRI_datafile_t* datafile;
|
||||||
|
int result;
|
||||||
|
|
||||||
|
datafile = (TRI_datafile_t*) TRI_AtVectorPointer(files, i);
|
||||||
|
result = TRI_IterateDatafile(datafile, iterator, data, false);
|
||||||
|
|
||||||
|
if (! result) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// @brief closes the datafiles passed in the vector
|
/// @brief closes the datafiles passed in the vector
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -902,8 +927,7 @@ bool TRI_IterateCollection (TRI_collection_t* collection,
|
||||||
TRI_vector_pointer_t* datafiles;
|
TRI_vector_pointer_t* datafiles;
|
||||||
TRI_vector_pointer_t* journals;
|
TRI_vector_pointer_t* journals;
|
||||||
TRI_vector_pointer_t* compactors;
|
TRI_vector_pointer_t* compactors;
|
||||||
size_t i;
|
bool result;
|
||||||
size_t n;
|
|
||||||
|
|
||||||
datafiles = TRI_CopyVectorPointer(TRI_UNKNOWN_MEM_ZONE, &collection->_datafiles);
|
datafiles = TRI_CopyVectorPointer(TRI_UNKNOWN_MEM_ZONE, &collection->_datafiles);
|
||||||
if (datafiles == NULL) {
|
if (datafiles == NULL) {
|
||||||
|
@ -929,71 +953,20 @@ bool TRI_IterateCollection (TRI_collection_t* collection,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// iterate over all datafiles
|
if (! IterateDatafilesVector(datafiles , iterator, data) ||
|
||||||
n = datafiles->_length;
|
! IterateDatafilesVector(compactors, iterator, data) ||
|
||||||
|
! IterateDatafilesVector(journals, iterator, data)) {
|
||||||
for (i = 0; i < n; ++i) {
|
result = false;
|
||||||
TRI_datafile_t* datafile;
|
|
||||||
bool result;
|
|
||||||
|
|
||||||
datafile = datafiles->_buffer[i];
|
|
||||||
|
|
||||||
result = TRI_IterateDatafile(datafile, iterator, data, false);
|
|
||||||
|
|
||||||
if (! result) {
|
|
||||||
TRI_FreeVectorPointer(TRI_UNKNOWN_MEM_ZONE, datafiles);
|
|
||||||
TRI_FreeVectorPointer(TRI_UNKNOWN_MEM_ZONE, journals);
|
|
||||||
TRI_FreeVectorPointer(TRI_UNKNOWN_MEM_ZONE, compactors);
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// iterate over all compactors
|
|
||||||
n = compactors->_length;
|
|
||||||
|
|
||||||
for (i = 0; i < n; ++i) {
|
|
||||||
TRI_datafile_t* datafile;
|
|
||||||
bool result;
|
|
||||||
|
|
||||||
datafile = compactors->_buffer[i];
|
|
||||||
|
|
||||||
result = TRI_IterateDatafile(datafile, iterator, data, false);
|
|
||||||
|
|
||||||
if (! result) {
|
|
||||||
TRI_FreeVectorPointer(TRI_UNKNOWN_MEM_ZONE, datafiles);
|
|
||||||
TRI_FreeVectorPointer(TRI_UNKNOWN_MEM_ZONE, journals);
|
|
||||||
TRI_FreeVectorPointer(TRI_UNKNOWN_MEM_ZONE, compactors);
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// iterate over all journals
|
|
||||||
n = journals->_length;
|
|
||||||
|
|
||||||
for (i = 0; i < n; ++i) {
|
|
||||||
TRI_datafile_t* datafile;
|
|
||||||
bool result;
|
|
||||||
|
|
||||||
datafile = journals->_buffer[i];
|
|
||||||
|
|
||||||
result = TRI_IterateDatafile(datafile, iterator, data, false);
|
|
||||||
|
|
||||||
if (! result) {
|
|
||||||
TRI_FreeVectorPointer(TRI_UNKNOWN_MEM_ZONE, datafiles);
|
|
||||||
TRI_FreeVectorPointer(TRI_UNKNOWN_MEM_ZONE, journals);
|
|
||||||
TRI_FreeVectorPointer(TRI_UNKNOWN_MEM_ZONE, compactors);
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
result = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TRI_FreeVectorPointer(TRI_UNKNOWN_MEM_ZONE, datafiles);
|
TRI_FreeVectorPointer(TRI_UNKNOWN_MEM_ZONE, datafiles);
|
||||||
TRI_FreeVectorPointer(TRI_UNKNOWN_MEM_ZONE, journals);
|
TRI_FreeVectorPointer(TRI_UNKNOWN_MEM_ZONE, journals);
|
||||||
TRI_FreeVectorPointer(TRI_UNKNOWN_MEM_ZONE, compactors);
|
TRI_FreeVectorPointer(TRI_UNKNOWN_MEM_ZONE, compactors);
|
||||||
|
|
||||||
return true;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
Loading…
Reference in New Issue