the fatal error introduced in 0.72 when the assumption was violated.
* Convert to XSLoader
* Resolve CPAN #49437 (Devel::Size adds magic in Perl 5.10)
+ * Resolve CPAN #58484
0.72 2008-10-14 BrowserUk 70 tests
* Added bit-vector pointer tracking mechanism.
#include "XSUB.h"
#include "ppport.h"
+/* Not yet in ppport.h */
+#ifndef CvISXSUB
+# define CvISXSUB(cv) (CvXSUB(cv) ? TRUE : FALSE)
+#endif
+
#ifdef _MSC_VER
/* "structured exception" handling is a Microsoft extension to C and C++.
It's *not* C++ exception handling - C++ exception handling can't capture
if (check_new(tv, CvOUTSIDE(thing))) {
total_size += thing_size((SV *)CvOUTSIDE(thing), tv);
}
- if (check_new(tv, CvSTART(thing))) {
- total_size += op_size(CvSTART(thing), tv);
- }
- if (check_new(tv, CvROOT(thing))) {
- total_size += op_size(CvROOT(thing), tv);
+ if (!CvISXSUB(thing)) {
+ if (check_new(tv, CvSTART(thing))) {
+ total_size += op_size(CvSTART(thing), tv);
+ }
+ if (check_new(tv, CvROOT(thing))) {
+ total_size += op_size(CvROOT(thing), tv);
+ }
}
TAG;break;
BEGIN
{
chdir 't' if -d 't';
- plan tests => 13;
+ plan tests => 15;
use lib '../lib';
use lib '../blib/arch';
##########################################################
# RT#14849 (& RT#26781 and possibly RT#29238?)
isnt( total_size( sub{ do{ my $t=0 }; } ), 0, 'total_size( sub{ my $t=0 } ) > 0' );
+
+# CPAN RT #58484 and #58485
+isnt (total_size(\&total_size), 0, 'total_size(\&total_size) > 0');
+
+use constant LARGE => 'N' x 4096;
+
+isnt (total_size(\&LARGE), 0, 'total_size for a constant > 0');