]> git.imager.perl.org - imager.git/blobdiff - typemap
- add samples/tk-photo.pl
[imager.git] / typemap
diff --git a/typemap b/typemap
index f8b7a5b98f2681f17a444ed8de9862999d458465..1312b02e520f39d2b649b8be204d2503bbf35abe 100644 (file)
--- a/typemap
+++ b/typemap
@@ -2,23 +2,37 @@
 Imager::Color           T_PTROBJ
 Imager::Color::Float    T_PTROBJ
 Imager::ImgRaw          T_PTROBJ
-Imager::TTHandle       T_PTROBJ
+Imager::Font::TT       T_PTROBJ
 Imager::IO              T_PTROBJ
 Imager::Font::FT2       T_PTROBJ
+Imager::FillHandle      T_PTROBJ
 const char *           T_PV
 float                  T_FLOAT
 float*                 T_ARRAY
 undef_int              T_IV_U
+undef_neg_int           T_IV_NEGU
 HASH                   T_HVREF
+utf8_str               T_UTF8_STR
 #############################################################################
 INPUT
 T_PTR_NULL
-       if (SvOK($arg)) $var = ($type)SvIV($arg);
+       if (SvOK($arg)) $var = INT2PTR($type,SvIV($arg));
        else $var = NULL
+
+# the pre-5.8.0 T_AVREF input map was fixed in 5.8.0
+T_AVREF
+        if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVAV)
+            $var = (AV*)SvRV($arg);
+        else
+            Perl_croak(aTHX_ \"$var is not an array reference\")
+
 #############################################################################
 OUTPUT
 T_IV_U
        if ($var == 0) $arg=&PL_sv_undef;
        else sv_setiv($arg, (IV)$var);
+T_IV_NEGU
+       if ($var < 0) $arg=&PL_sv_undef;
+       else sv_setiv($arg, (IV)$var);
 T_PTR_NULL
        sv_setiv($arg, (IV)$var);