From ad1edf75418797d444e419cb21af710e9546b6f2 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Sat, 7 Sep 2013 16:14:08 +0200 Subject: libaml: fix uninitialized variable in getle(), make amleval() work with buildin methods --- sys/src/libaml/aml.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/sys/src/libaml/aml.c b/sys/src/libaml/aml.c index 9d1298eb7..e90e711f7 100644 --- a/sys/src/libaml/aml.c +++ b/sys/src/libaml/aml.c @@ -460,6 +460,7 @@ getle(uchar *p, int len) uvlong v; int i; + v = 0ULL; for(i=0; ienv = e; FP->narg = 0; FP->dot = m->name; - if(m->eval){ + if(m->eval != nil){ FP->op = nil; FP->end = PC; return (*m->eval)(); @@ -2187,7 +2188,15 @@ amleval(void *dot, char *fmt, ...) m = dot; if(i != m->narg) return -1; - return xec(m->start, m->end, forkname(m->name), e, r); + if(m->eval == nil) + return xec(m->start, m->end, forkname(m->name), e, r); + FP = FB; + FP->op = nil; + FP->env = e; + FP->narg = 0; + FP->dot = m->name; + FP->ref = FP->aux = nil; + dot = (*m->eval)(); } if(r != nil) *r = dot; -- cgit v1.2.3