X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FTest-Valgrind.git;a=blobdiff_plain;f=Valgrind.xs;h=137ddf0b77616777f8e7e4b9322148ed22840f7b;hp=a9f0eff0cf9a6a7119fc6d7ea849ef95a8124bef;hb=HEAD;hpb=b41c498738a3a4ccb8742883a42e6ea5addb1afd diff --git a/Valgrind.xs b/Valgrind.xs index a9f0eff..137ddf0 100644 --- a/Valgrind.xs +++ b/Valgrind.xs @@ -1,5 +1,5 @@ -/* This file is part of the Scalar::Vec::Util Perl module. - * See http://search.cpan.org/dist/Scalar-Vec-Util/ */ +/* This file is part of the Test::Valgrind Perl module. + * See http://search.cpan.org/dist/Test::Valgrind/ */ #define PERL_NO_GET_CONTEXT #include "EXTERN.h" @@ -18,6 +18,24 @@ const char *tv_leaky = NULL; +/* malloc() on Windows needs the current interpreter. */ + +#ifdef PERL_IMPLICIT_SYS +# define TV_LEAK_PROTO pTHX +# define TV_LEAK_ARG aTHX +#else +# define TV_LEAK_PROTO void +# define TV_LEAK_ARG +#endif + +extern void tv_leak(TV_LEAK_PROTO); + +extern void tv_leak(TV_LEAK_PROTO) { + tv_leaky = malloc(10000); + + return; +} + /* --- XS ------------------------------------------------------------------ */ MODULE = Test::Valgrind PACKAGE = Test::Valgrind @@ -33,7 +51,7 @@ BOOT: void leak() CODE: - tv_leaky = malloc(10000); + tv_leak(TV_LEAK_ARG); XSRETURN_UNDEF; SV *