From 12f491c4647b444cdcfd062de6301bbbcf395cee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Thu, 13 Jun 2013 21:52:45 +0200 Subject: [PATCH] Fix complex_svalue_is_true() for subtyped objects. complex_svalue_is_true() was broken for subtyped objects for private inherits. --- src/svalue.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/svalue.c b/src/svalue.c index 39b1a8cc8f..08138506ab 100644 --- a/src/svalue.c +++ b/src/svalue.c @@ -525,11 +525,13 @@ int complex_svalue_is_true( const struct svalue *s ) if(!(p = s->u.object->prog)) return 0; - if((fun = FIND_LFUN(p, LFUN_NOT)) == -1) - return 1; - - if((fun = FIND_LFUN(p->inherits[SUBTYPEOF(*s)].prog, LFUN_NOT)) == -1) - return 1; + if (SUBTYPEOF(*s)) { + if((fun = FIND_LFUN(p->inherits[SUBTYPEOF(*s)].prog, LFUN_NOT)) == -1) + return 1; + } else { + if((fun = FIND_LFUN(p, LFUN_NOT)) == -1) + return 1; + } apply_low(s->u.object, fun + p->inherits[SUBTYPEOF(*s)].identifier_level, 0); -- GitLab