Fix the build under 5005 threads.
Nicholas Clark [Fri, 27 Mar 2015 18:46:06 +0000 (19:46 +0100)]
CHANGES
Size.xs

diff --git a/CHANGES b/CHANGES
index 63989e9..24ae463 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -3,6 +3,7 @@ Revision history for Perl extension Devel::Size.
 0.79_54 2015-03-27 nicholas
   * Fix the definition of padlist_size() for post-5.20 perls.
   * Avoid tests failing because Test::More lazy-loading changes the size of %::
+  * Fix the build under 5005 threads. [Not that anyone is using them :-)]
 
 0.79_53 2015-03-25 nicholas
   * Avoid t/recurse.t failing on earlier versions on 32 bit platforms
diff --git a/Size.xs b/Size.xs
index b03bcda..e0ef024 100644 (file)
--- a/Size.xs
+++ b/Size.xs
@@ -133,9 +133,10 @@ check_new(struct state *st, const void *const p) {
        bits -= 8;
     } while (bits > LEAF_BITS + BYTE_BITS);
     /* bits now 16 always */
-#if !defined(MULTIPLICITY) || PERL_VERSION > 8 || (PERL_VERSION == 8 && PERL_SUBVERSION > 8)
-    /* 5.8.8 and early have an assert() macro that uses Perl_croak, hence needs
-       a my_perl under multiplicity  */
+#if PERL_COMBI_VERSION > 5008008 || (!defined(MULTIPLICITY) && !defined(USE_THREADS))
+    /* 5.8.8 and earlier have an assert() macro that uses Perl_croak, hence
+       needs a my_perl under multiplicity. Similarly, under 5.005 threads
+       Perl_croak needs a thr. In both cases, just skip the assert.  */
     assert(bits == 16);
 #endif
     leaf_p = (U8 **)tv_p;