From: Tony Cook <tony@develop-help.com>
Date: Fri, 24 May 2013 13:06:30 +0000 (+1000)
Subject: [rt #69243] simplify XS for i_tags_find() and i_tags_findn()
X-Git-Tag: v0.96_01~16^2~6
X-Git-Url: http://git.imager.perl.org/imager.git/commitdiff_plain/f4aca8311f3193170163be4f7a27f10a8932ebb6

[rt #69243] simplify XS for i_tags_find() and i_tags_findn()

Use SysRet for return values, and use XSRETURN_UNDEF for the undef case
---

diff --git a/Imager.xs b/Imager.xs
index a4ab7615..e4debb47 100644
--- a/Imager.xs
+++ b/Imager.xs
@@ -3676,7 +3676,7 @@ i_tags_add(im, name_sv, code, data_sv, idata)
       OUTPUT:
         RETVAL
 
-SV *
+SysRet
 i_tags_find(im, name, start)
         Imager::ImgRaw  im
         char *name
@@ -3685,17 +3685,14 @@ i_tags_find(im, name, start)
         int entry;
       CODE:
         if (i_tags_find(&im->tags, name, start, &entry)) {
-          if (entry == 0)
-            RETVAL = newSVpv("0 but true", 0);
-          else
-            RETVAL = newSViv(entry);
+	  RETVAL = entry;
         } else {
-          RETVAL = &PL_sv_undef;
+          XSRETURN_UNDEF;
         }
       OUTPUT:
         RETVAL
 
-SV *
+SysRet
 i_tags_findn(im, code, start)
         Imager::ImgRaw  im
         int             code
@@ -3704,13 +3701,10 @@ i_tags_findn(im, code, start)
         int entry;
       CODE:
         if (i_tags_findn(&im->tags, code, start, &entry)) {
-          if (entry == 0)
-            RETVAL = newSVpv("0 but true", 0);
-          else
-            RETVAL = newSViv(entry);
+          RETVAL = entry;
         }
         else {
-          RETVAL = &PL_sv_undef;
+          XSRETURN_UNDEF;
         }
       OUTPUT:
         RETVAL