Changeset: fd6c1e277555 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fd6c1e277555
Modified Files:
        monetdb5/extras/crackers/crackers_core_unordered.mx
Branch: holindex
Log Message:

Create temporary array (NOT a new bat).


diffs (41 lines):

diff --git a/monetdb5/extras/crackers/crackers_core_unordered.mx 
b/monetdb5/extras/crackers/crackers_core_unordered.mx
--- a/monetdb5/extras/crackers/crackers_core_unordered.mx
+++ b/monetdb5/extras/crackers/crackers_core_unordered.mx
@@ -1077,13 +1077,12 @@ static str CRKvectorized_x_@2_@1 (
        BUN lowerWriteCursor = first_left, upperWriteCursor = last_right;
        BUN vectorI = 0, vectorR = 3, skip, skip_left, skip_right;
        cursorDeltas deltas;
-       BAT *localBuffer = BATnew(TYPE_oid, TYPE_@1, vector_elements*3);
        oid *src_h = (oid*) Hloc(buffer, BUNfirst(buffer));
        @1  *src_t = (@1 *) Tloc(buffer, BUNfirst(buffer));
-       oid *src_h_local = (oid*) Hloc(localBuffer, BUNfirst(localBuffer));
-       @1  *src_t_local = (@1 *) Tloc(localBuffer, BUNfirst(localBuffer));
+       oid *src_h_local = (oid*) GDKmalloc(vector_elements * 3 * sizeof(oid));
+       @1  *src_t_local = (@1 *) GDKmalloc(vector_elements * 3 * sizeof(@1));
 
-       assert(buffer || localBuffer);
+       assert(buffer || src_h_local || src_t_local);
        assert(pos_r);
        assert(valueCount%(2*vector_elements) == 0);
        assert(!(ml && mr && last_left + 1 < first_right) || 
(ml%(2*vector_elements) == 0 && mr%(2*vector_elements) == 0));
@@ -1091,6 +1090,10 @@ static str CRKvectorized_x_@2_@1 (
        if(2*vectorR > vectorCount)
        {
                CRKcrackUnorderedZero_@2_@1_STxxx (buffer, pivot, first_left, 
last_right, ml, mr, pos_r);
+
+               GDKfree(src_h_local);
+               GDKfree(src_t_local);
+
                return MAL_SUCCEED;
        }
 
@@ -1201,6 +1204,9 @@ static str CRKvectorized_x_@2_@1 (
 
        *pos_r = lowerWriteCursor;
 
+       GDKfree(src_h_local);
+       GDKfree(src_t_local);
+       
        return MAL_SUCCEED;
 }
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to