1
0
Fork 0

Revert "Do not copy TRI_doc_mptr_t."

This reverts commit ea1f82194dccdf212c9ef1f7ee8c5790b7e3c771.

We need to copy such that we can release the collection lock earlier.
This commit is contained in:
Max Neunhoeffer 2014-06-05 14:56:21 +02:00
parent 537160f2d5
commit 35e00a3a4d
3 changed files with 10 additions and 10 deletions

View File

@ -203,7 +203,7 @@ namespace triagens {
/// @brief read documents within a transaction, using skip and limit
////////////////////////////////////////////////////////////////////////////////
int read (vector<TRI_doc_mptr_t*>& docs,
int read (vector<TRI_doc_mptr_t>& docs,
TRI_barrier_t** barrier,
TRI_voc_ssize_t skip,
TRI_voc_size_t limit,
@ -218,7 +218,7 @@ namespace triagens {
/// access to the documents
////////////////////////////////////////////////////////////////////////////////
int readOffset (vector<TRI_doc_mptr_t*>& docs,
int readOffset (vector<TRI_doc_mptr_t>& docs,
TRI_barrier_t** barrier,
TRI_voc_size_t& internalSkip,
TRI_voc_size_t batchSize,

View File

@ -630,7 +630,7 @@ namespace triagens {
////////////////////////////////////////////////////////////////////////////////
int readSlice (TRI_transaction_collection_t* trxCollection,
vector<TRI_doc_mptr_t*>& docs,
vector<TRI_doc_mptr_t>& docs,
TRI_barrier_t** barrier,
TRI_voc_ssize_t skip,
TRI_voc_size_t limit,
@ -705,7 +705,7 @@ namespace triagens {
if (*ptr) {
TRI_doc_mptr_t* d = (TRI_doc_mptr_t*) *ptr;
docs.push_back(d);
docs.push_back(*d);
++count;
}
}
@ -729,7 +729,7 @@ namespace triagens {
////////////////////////////////////////////////////////////////////////////////
int readIncremental (TRI_transaction_collection_t* trxCollection,
vector<TRI_doc_mptr_t*>& docs,
vector<TRI_doc_mptr_t>& docs,
TRI_barrier_t** barrier,
TRI_voc_size_t& internalSkip,
TRI_voc_size_t batchSize,
@ -781,7 +781,7 @@ namespace triagens {
--skip;
}
else {
docs.push_back(d);
docs.push_back(*d);
++count;
}
}

View File

@ -1706,7 +1706,7 @@ static v8::Handle<v8::Value> JS_AllQuery (v8::Arguments const& argv) {
TRI_barrier_t* barrier = 0;
uint32_t total = 0;
vector<TRI_doc_mptr_t*> docs;
vector<TRI_doc_mptr_t> docs;
CollectionNameResolver resolver(col->_vocbase);
ReadTransactionType trx(col->_vocbase, resolver, col->_cid);
@ -1739,7 +1739,7 @@ static v8::Handle<v8::Value> JS_AllQuery (v8::Arguments const& argv) {
result->Set(v8::String::New("documents"), documents);
for (size_t i = 0; i < n; ++i) {
v8::Handle<v8::Value> doc = WRAP_SHAPED_JSON(trx, col->_cid, docs[i], barrier, usedBarrier);
v8::Handle<v8::Value> doc = WRAP_SHAPED_JSON(trx, col->_cid, &docs[i], barrier, usedBarrier);
if (doc.IsEmpty()) {
TRI_V8_EXCEPTION_MEMORY(scope);
@ -1791,7 +1791,7 @@ static v8::Handle<v8::Value> JS_OffsetQuery (v8::Arguments const& argv) {
TRI_barrier_t* barrier = 0;
uint32_t total = 0;
vector<TRI_doc_mptr_t*> docs;
vector<TRI_doc_mptr_t> docs;
CollectionNameResolver resolver(col->_vocbase);
ReadTransactionType trx(col->_vocbase, resolver, col->_cid);
@ -1824,7 +1824,7 @@ static v8::Handle<v8::Value> JS_OffsetQuery (v8::Arguments const& argv) {
result->Set(v8::String::New("documents"), documents);
for (size_t i = 0; i < n; ++i) {
v8::Handle<v8::Value> document = WRAP_SHAPED_JSON(trx, col->_cid, docs[i], barrier, usedBarrier);
v8::Handle<v8::Value> document = WRAP_SHAPED_JSON(trx, col->_cid, &docs[i], barrier, usedBarrier);
if (document.IsEmpty()) {
TRI_V8_EXCEPTION_MEMORY(scope);