Update of /cvsroot/monetdb/pathfinder/compiler/mil
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv5910/compiler/mil

Modified Files:
        milgen.brg 
Log Message:
[ 1607210 ] XQ: server-side compilation crash (member benchmark)
- introduced a stack fence that aborts too deep recursion
  only enabled in embedded mode (to keep Mserver alive on bad queries)



Index: milgen.brg
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/milgen.brg,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -d -r1.74 -r1.75
--- milgen.brg  7 May 2007 10:17:39 -0000       1.74
+++ milgen.brg  25 May 2007 21:55:20 -0000      1.75
@@ -601,6 +601,8 @@
     /* determine rule that matches for this non-terminal */
     rule = PFmilgen_rule (STATE_LABEL (p), goalnt);
 
+    PFrecursion_fence();
+
     /* PFinfo (OOPS_NOTICE, "match for rule %i", rule); */
     assert(rule);
 
@@ -683,6 +685,8 @@
     if (p->env)
         return;
 
+    PFrecursion_fence();
+
     p->env = new_env ();
     
     /* determine rule that matches for this non-terminal */
@@ -842,6 +846,8 @@
                 "cannot cope with function reduce2 "
                 "as long as reduce1 was not called.");
 
+    PFrecursion_fence();
+
     /* determine rule that matches for this non-terminal */
     rule = PFmilgen_rule (STATE_LABEL (p), goalnt);
 
@@ -948,6 +954,8 @@
                 "cannot cope with function reduce3 "
                 "as long as reduce1 was not called.");
 
+    PFrecursion_fence();
+
     /* determine rule that matches for this non-terminal */
     rule = PFmilgen_rule (STATE_LABEL (p), goalnt);
 
@@ -1037,6 +1045,8 @@
     /* PFinfo (OOPS_NOTICE, "match for rule %i", rule); */
     assert(rule);
 
+    PFrecursion_fence();
+
     /* initialize the kids[] vector */
     for (unsigned short i = 0; i < MAX_KIDS; i++)
         kids[i] = NULL;


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins

Reply via email to