Here is the patch. It changes the string_bool function an his
declaration, and deletes the check for null before calling it in
several places.

-- 
Salu2
Index: src/ops/core.ops
===================================================================
--- src/ops/core.ops	(revisión: 27462)
+++ src/ops/core.ops	(copia de trabajo)
@@ -315,7 +315,7 @@
 }
 
 op if (invar STR, labelconst INT) {
-    if ($1 && string_bool(interp, $1))
+    if (string_bool(interp, $1))
         goto OFFSET($2);
 }
 
@@ -349,7 +349,7 @@
 }
 
 op unless(invar STR, labelconst INT) {
-    if (!$1 || !string_bool(interp, $1))
+    if (!string_bool(interp, $1))
         goto OFFSET($2);
 }
 
Index: src/string.c
===================================================================
--- src/string.c	(revisión: 27462)
+++ src/string.c	(copia de trabajo)
@@ -1806,9 +1806,9 @@
 PARROT_API
 PARROT_WARN_UNUSED_RESULT
 INTVAL
-string_bool(PARROT_INTERP, ARGIN(const STRING *s))
+string_bool(PARROT_INTERP, ARGIN_NULLOK(const STRING *s))
 {
-    const INTVAL len = string_length(interp, s);
+    const INTVAL len = s ? string_length(interp, s) : 0;
 
     if (len == 0)
         return 0;
Index: src/pmc/string.pmc
===================================================================
--- src/pmc/string.pmc	(revisión: 27462)
+++ src/pmc/string.pmc	(copia de trabajo)
@@ -167,7 +167,7 @@
 
     VTABLE INTVAL get_bool() {
         STRING * const s = VTABLE_get_string(INTERP, SELF);
-        return s ? string_bool(INTERP, s) : 0;
+        return string_bool(INTERP, s);
     }
 
 /*
Index: CREDITS
===================================================================
--- CREDITS	(revisión: 27462)
+++ CREDITS	(copia de trabajo)
@@ -1,4 +1,4 @@
-# $Id$
+ÿ# $Id$
 
     Following in the steps of other open source projects that
     eventually take over the world, here is the partial list
@@ -498,6 +498,10 @@
 N: Nigelsandever
 D: Win32 patches
 
+N: NotFound
+D: Bug fixing and cage cleaning.
+E: [EMAIL PROTECTED]
+
 N: Nuno 'smash' Carvalho
 D: PGE/perl6/abc debugging and testing
 E: [EMAIL PROTECTED]
Index: include/parrot/string_funcs.h
===================================================================
--- include/parrot/string_funcs.h	(revisión: 27462)
+++ include/parrot/string_funcs.h	(copia de trabajo)
@@ -150,9 +150,8 @@
 
 PARROT_API
 PARROT_WARN_UNUSED_RESULT
-INTVAL string_bool(PARROT_INTERP, ARGIN(const STRING *s))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
+INTVAL string_bool(PARROT_INTERP, ARGIN_NULLOK(const STRING *s))
+        __attribute__nonnull__(1);
 
 PARROT_API
 PARROT_WARN_UNUSED_RESULT

Reply via email to