From d39014844c7a36f5efefec506f3057b2cccfb8d6 Mon Sep 17 00:00:00 2001 From: Martin Nilsson <mani@lysator.liu.se> Date: Wed, 27 Feb 2002 12:51:03 +0100 Subject: [PATCH] [Bug 2769] is solved. Removing multilevel wrapper for variables and populate variables in the Hilfe wrapper directly at compile time. Rev: lib/modules/Tools.pmod/Hilfe.pmod:1.33 --- lib/modules/Tools.pmod/Hilfe.pmod | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/lib/modules/Tools.pmod/Hilfe.pmod b/lib/modules/Tools.pmod/Hilfe.pmod index b71fdf1816..526f14e396 100644 --- a/lib/modules/Tools.pmod/Hilfe.pmod +++ b/lib/modules/Tools.pmod/Hilfe.pmod @@ -2,7 +2,7 @@ // Incremental Pike Evaluator // -// $Id: Hilfe.pmod,v 1.32 2002/02/26 16:13:35 nilsson Exp $ +// $Id: Hilfe.pmod,v 1.33 2002/02/27 11:51:03 nilsson Exp $ constant hilfe_todo = #"List of known Hilfe bugs/room for improvements: @@ -838,13 +838,12 @@ class Evaluator { existed = 1; } - object o = hilfe_compile("class ___HilfeWrapper {\n" + - type + " " + code + + object o = hilfe_compile(type + " " + code + ";\nmixed ___HilfeWrapper() { return " + - var + "; }\n}\n", var); + var + "; }\n", var); if( o && hilfe_error( catch( variables[var] = - o->___HilfeWrapper()->___HilfeWrapper() ) ) ) { + o->___HilfeWrapper() ) ) ) { types[var] = type; } else if(existed) @@ -864,10 +863,10 @@ class Evaluator { ";\nmixed ___HilfeWrapper() { return " + var + "; }\n", var); - if( o && hilfe_error( catch( vtype[var] = o->___HilfeWrapper() ) ) ) { - ; - } - else if(existed) + if( o && hilfe_error( catch( vtype[var] = o->___HilfeWrapper() ) ) ) + return; + + if(existed) vtype[var] = old_value; } @@ -1105,7 +1104,7 @@ class Evaluator { map(indices(variables), lambda(string f) { - return sprintf("%s %s;", types[f], f); + return sprintf("%s %s=___hilfe.%s;", types[f], f, f); }) * "\n" + "\n" + "\nmapping query_variables() { return ([\n"+ @@ -1143,10 +1142,6 @@ class Evaluator { return 0; } - // Populate variables - foreach(variables; string name; mixed value) - o[name] = value; - return o; } -- GitLab