From d2fb022441110f49013a6437bc4becf97b56f965 Mon Sep 17 00:00:00 2001 From: ceriel Date: Fri, 18 Dec 1992 10:29:31 +0000 Subject: [PATCH] improved ply handling --- mach/proto/cg/codegen.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mach/proto/cg/codegen.c b/mach/proto/cg/codegen.c index e763e085d..33b433b22 100644 --- a/mach/proto/cg/codegen.c +++ b/mach/proto/cg/codegen.c @@ -139,6 +139,10 @@ unsigned codegen(codep,ply,toplevel,costlimit,forced) byte *codep; unsigned cost #ifndef NDEBUG chkregs(); #endif + if (! toplevel) { + ply -= emp-saveemp+1; + if (ply <= 0) ply = 1; + } n = *bp++; assert(n>0 && n<=MAXRULE); if (n>1) { @@ -657,8 +661,7 @@ if (Debug > 1) fprintf(stderr, "cost after coercions: %u\n", t); } } if (!toplevel) { - if (ply >= j) ply += emrepllen - j; - else ply = emrepllen; + ply += emrepllen; } break; case DO_COST: -- 2.34.1