In DosGlob.xs, add a block around MY_CXT_INIT, as it contains a declaration.
authorNicholas Clark <nick@ccl4.org>
Wed, 12 Dec 2012 09:18:21 +0000 (10:18 +0100)
committerNicholas Clark <nick@ccl4.org>
Wed, 12 Dec 2012 09:18:21 +0000 (10:18 +0100)
The macro MY_CXT_INIT contains a variable declaration, and xsubpp doesn't
wrap XS BOOT sections within a block, hence code at the start of the BOOT
section may already be after code. Hence wrap MY_CXT_INIT within a block, to
ensure that its initialisation is before any code.

ext/File-DosGlob/DosGlob.xs

index ce59830..929a237 100644 (file)
@@ -29,6 +29,7 @@ MODULE = File::DosGlob                PACKAGE = File::DosGlob
 PROTOTYPES: DISABLE
 
 BOOT:
+{
     MY_CXT_INIT;
     {
        dMY_CXT;
@@ -36,6 +37,7 @@ BOOT:
        MY_CXT.x_DG_OLD_OPHOOK = PL_opfreehook;
        PL_opfreehook = glob_ophook;
     }
+}
 
 SV *
 _callsite(...)