Changeset: c4a9f5e96130 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c4a9f5e96130
Modified Files:
        MonetDB5/src/modules/kernel/batcalc.mx
Branch: Feb2010
Log Message:

more reference counting fixes


diffs (69 lines):

diff -r ab9d6ef27959 -r c4a9f5e96130 MonetDB5/src/modules/kernel/batcalc.mx
--- a/MonetDB5/src/modules/kernel/batcalc.mx    Sat Jun 19 21:03:57 2010 +0200
+++ b/MonetDB5/src/modules/kernel/batcalc.mx    Sun Jun 20 11:45:01 2010 +0200
@@ -732,8 +732,10 @@
     }
 
        BBPkeepref(*ret = bn->batCacheid);
-       BBPreleaseref(b->batCacheid);
-       BBPreleaseref(right->batCacheid);
+       if (b != bn)
+               BBPreleaseref(b->batCacheid);
+       if (right != bn)
+               BBPreleaseref(right->batCacheid);
        return res;
 }
 
@@ -786,7 +788,8 @@
         bn = r;
     }
        BBPkeepref(*ret = bn->batCacheid);
-       BBPreleaseref(b->batCacheid);
+       if (b != bn)
+               BBPreleaseref(b->batCacheid);
        return res;
 }
 
@@ -835,7 +838,8 @@
         bn = r;
     }
        BBPkeepref(*ret = bn->batCacheid);
-       BBPreleaseref(b->batCacheid);
+       if (b != bn)
+               BBPreleaseref(b->batCacheid);
        return res;
 }
 @-
@@ -1015,8 +1019,10 @@
        msg = batac...@2_@3...@4_@5(bn,b,right);
 
        BBPkeepref(*ret = bn->batCacheid);
-       BBPreleaseref(b->batCacheid);
-       BBPreleaseref(right->batCacheid);
+       if (b != bn)
+               BBPreleaseref(b->batCacheid);
+       if (right != bn)
+               BBPreleaseref(right->batCacheid);
        return msg;
 }
 
@@ -1068,7 +1074,8 @@
        if (!(bn->batDirty&2)) bn = BATsetaccess(bn, BAT_READ); 
 
        BBPkeepref(*ret = bn->batCacheid);
-       BBPreleaseref(b->batCacheid);
+       if (b != bn)
+               BBPreleaseref(b->batCacheid);
        return MAL_SUCCEED;
 }
 
@@ -1120,7 +1127,8 @@
        if (!(bn->batDirty&2)) bn = BATsetaccess(bn, BAT_READ); 
 
        BBPkeepref(*ret = bn->batCacheid);
-       BBPreleaseref(b->batCacheid);
+       if (b != bn)
+               BBPreleaseref(b->batCacheid);
        return MAL_SUCCEED;
 }
 @c
_______________________________________________
Checkin-list mailing list
Checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to