Changeset: adb2fc1ebbdc for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=adb2fc1ebbdc
Modified Files:
        MonetDB5/src/modules/mal/trader.mx
        MonetDB5/src/scheduler/run_octopus.mx
Branch: default
Log Message:

Fixed memory allocation in cost estimate function


diffs (106 lines):

diff -r e034e2d4a3c3 -r adb2fc1ebbdc MonetDB5/src/modules/mal/trader.mx
--- a/MonetDB5/src/modules/mal/trader.mx        Wed Jun 30 10:28:21 2010 +0200
+++ b/MonetDB5/src/modules/mal/trader.mx        Wed Jun 30 11:37:36 2010 +0200
@@ -71,14 +71,14 @@
 #include <mal_recycle.h>
 #include "trader.h"
 
-
+/*
 static lng estimateSavings0(MalBlkPtr mb,  sht bidtype)
 {
        (void) mb;
        (void) bidtype;
        return (lng)100;
 }
-
+*/
 
 lng estimateSavings(MalBlkPtr mb, sht bidtype)
 {
@@ -98,14 +98,13 @@
                return 0;
 
        /* Create a phony exec. stack */
-       newStack(stk,mb->vsize);
-       memset((char *) stk, 0, stackSize(mb->vtop));
-       stk->stktop = mb->vtop; 
-       stk->stksize = mb->vsize;
+       stk = newGlobalStack(mb->vsize);
+       stk->stktop = mb->vtop;
+       stk->stkbot = 0; 
        stk->blk = mb;
 
        /* Init symbol table of the phony stack */      
-       for(i= 1; i< mb->vtop; i++) {
+       for(i= 0; i< mb->vtop; i++) {
                lhs = &stk->stk[i];
                if( isVarConstant(mb,i) > 0 ){
 /*                     assert(!isVarCleanup(mb,i)); */
@@ -159,7 +158,7 @@
                                for( j=0; j<p->retc; j++){
                                        VALcopy(&stk->stk[getArg(p,j)],
                                                
&getVarConstant(recycleBlk,getArg(q,j)) );
-                               }
+                   }
 
                                if ( bidtype == BID_TRANS )
                                        savedKB += 
recycleBlk->profiler[i].wbytes;
@@ -178,7 +177,9 @@
                        continue;
        }
 
+       /* clean up the phony stack */
        freeStack(stk);
+
        if ( bidtype == BID_TRANS )
                return savedKB;
        return (marked? (lng)100*savedInstr/marked: 0) ;
@@ -197,7 +198,7 @@
     if ( sym == NULL)
         throw(MAL,"trader.makeBid", RUNTIME_SIGNATURE_MISSING "%s", fnname);
         
-    *c = estimateSavings0(sym->def, bidtype);
+    *c = estimateSavings(sym->def, bidtype);
 
        return MAL_SUCCEED;
 }   
diff -r e034e2d4a3c3 -r adb2fc1ebbdc MonetDB5/src/scheduler/run_octopus.mx
--- a/MonetDB5/src/scheduler/run_octopus.mx     Wed Jun 30 10:28:21 2010 +0200
+++ b/MonetDB5/src/scheduler/run_octopus.mx     Wed Jun 30 11:37:36 2010 +0200
@@ -431,23 +431,23 @@
 str
 OCTOPUSbidding(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
-        bit *res = (bit*) getArgReference(stk,pci,0);
-        int j, start;
-        InstrPtr p;
+    bit *res = (bit*) getArgReference(stk,pci,0);
+    int j, start;
+    InstrPtr p;
        str msg = MAL_SUCCEED;
 
-        *res = 1;       /* execute the block */
+    *res = 1;       /* execute the block */
 
-        start = getPC(mb,pci);
-        for (j = start + 1; j< mb->stop ; j++){
-                p = getInstrPtr(mb,j);
-                if ( p->barrier == EXITsymbol )
-                        break;
-        }
+    start = getPC(mb,pci);
+    for (j = start + 1; j< mb->stop ; j++){
+       p = getInstrPtr(mb,j);
+       if ( p->barrier == EXITsymbol )
+               break;
+       }
 
-        msg = runMALdataflow(cntxt,mb,start,j,stk,0,pci);
+    msg = runMALdataflow(cntxt,mb,start,j,stk,0,pci);
        *res = 0;
-        return msg;
+    return msg;
 
 }
 
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to