[PATCH] Compress-Raw-Bzip2 2.018 (was RE: Compress-Raw-Bzip2 fails for g++)
Paul Marquess [Mon, 13 Apr 2009 13:23:28 +0000 (08:23 -0500)]
ext/Compress-Raw-Bzip2/Bzip2.xs
ext/Compress-Raw-Bzip2/Changes
ext/Compress-Raw-Bzip2/README
ext/Compress-Raw-Bzip2/bzip2-src/bzip2recover.c
ext/Compress-Raw-Bzip2/bzip2-src/bzlib.c
ext/Compress-Raw-Bzip2/bzip2-src/decompress.c
ext/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm
ext/Compress-Raw-Bzip2/t/01bzip2.t

index 6dec48d..ba13ab2 100644 (file)
@@ -338,6 +338,9 @@ PROTOTYPES: DISABLE
 INCLUDE: constants.xs
 
 BOOT:
+#ifndef NO_WRITEABLE_DATA
+  trace = TRACE_DEFAULT ;
+#endif
     /* Check this version of bzip2 is == 1 */
     if (BZ2_bzlibVersion()[0] != '1')
        croak(COMPRESS_CLASS " needs bzip2 version 1.x, you have %s\n", BZ2_bzlibVersion()) ;
@@ -350,8 +353,8 @@ const char *
 bzlibversion()
 
 void
-new(class, appendOut=1, blockSize100k=1, workfactor=0, verbosity=0)
-    const char * class
+new(className, appendOut=1, blockSize100k=1, workfactor=0, verbosity=0)
+    const char * className
     int appendOut
     int        blockSize100k
     int workfactor
@@ -387,7 +390,7 @@ new(class, appendOut=1, blockSize100k=1, workfactor=0, verbosity=0)
         err = BZ_MEM_ERROR ;
 
     {
-        SV* obj = sv_setref_pv(sv_newmortal(), class, (void*)s);
+        SV* obj = sv_setref_pv(sv_newmortal(), className, (void*)s);
         XPUSHs(obj);
     }
     if(0)
@@ -405,8 +408,8 @@ new(class, appendOut=1, blockSize100k=1, workfactor=0, verbosity=0)
 MODULE = Compress::Raw::Bunzip2 PACKAGE = Compress::Raw::Bunzip2
 
 void
-new(class, appendOut=1 , consume=1, small=0, verbosity=0)
-    const char* class
+new(className, appendOut=1 , consume=1, small=0, verbosity=0)
+    const char* className
     int appendOut
     int consume
     int small
@@ -440,7 +443,7 @@ new(class, appendOut=1 , consume=1, small=0, verbosity=0)
        err = BZ_MEM_ERROR ;
 
     {
-        SV* obj = sv_setref_pv(sv_newmortal(), class, (void*)s);
+        SV* obj = sv_setref_pv(sv_newmortal(), className, (void*)s);
         XPUSHs(obj);
     }
        if (0)
index 928bfcd..944eaaa 100644 (file)
@@ -1,6 +1,11 @@
 CHANGES
 -------
 
+  2.018 11 April 2009
+
+      * Changes to bzip2 source to get the module to build using a C++
+        compiler
+
   2.017 28 March 2009
 
       * Minor changes to allow building in perl core.
index 559e5c1..9e70cd7 100644 (file)
@@ -1,9 +1,9 @@
 
                              Compress-Raw-Bzip2
 
-                             Version 2.017
+                             Version 2.018
 
-                            28th March 2009
+                            11th April 2009
 
        Copyright (c) 2005-2009 Paul Marquess. All rights reserved.
           This program is free software; you can redistribute it
index 5f6d621..bdbcd8b 100644 (file)
@@ -153,7 +153,7 @@ typedef
 /*---------------------------------------------*/
 static BitStream* bsOpenReadStream ( FILE* stream )
 {
-   BitStream *bs = malloc ( sizeof(BitStream) );
+   BitStream *bs = (BitStream*) malloc ( sizeof(BitStream) );
    if (bs == NULL) mallocFail ( sizeof(BitStream) );
    bs->handle = stream;
    bs->buffer = 0;
@@ -166,7 +166,7 @@ static BitStream* bsOpenReadStream ( FILE* stream )
 /*---------------------------------------------*/
 static BitStream* bsOpenWriteStream ( FILE* stream )
 {
-   BitStream *bs = malloc ( sizeof(BitStream) );
+   BitStream *bs = (BitStream*) malloc ( sizeof(BitStream) );
    if (bs == NULL) mallocFail ( sizeof(BitStream) );
    bs->handle = stream;
    bs->buffer = 0;
index ef86c91..facd2b8 100644 (file)
@@ -165,7 +165,7 @@ int BZ_API(BZ2_bzCompressInit)
    if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc;
    if (strm->bzfree == NULL) strm->bzfree = default_bzfree;
 
-   s = BZALLOC( sizeof(EState) );
+   s = (EState*) BZALLOC( sizeof(EState) );
    if (s == NULL) return BZ_MEM_ERROR;
    s->strm = strm;
 
@@ -174,9 +174,9 @@ int BZ_API(BZ2_bzCompressInit)
    s->ftab = NULL;
 
    n       = 100000 * blockSize100k;
-   s->arr1 = BZALLOC( n                  * sizeof(UInt32) );
-   s->arr2 = BZALLOC( (n+BZ_N_OVERSHOOT) * sizeof(UInt32) );
-   s->ftab = BZALLOC( 65537              * sizeof(UInt32) );
+   s->arr1 = (UInt32*) BZALLOC( n                  * sizeof(UInt32) );
+   s->arr2 = (UInt32*) BZALLOC( (n+BZ_N_OVERSHOOT) * sizeof(UInt32) );
+   s->ftab = (UInt32*) BZALLOC( 65537              * sizeof(UInt32) );
 
    if (s->arr1 == NULL || s->arr2 == NULL || s->ftab == NULL) {
       if (s->arr1 != NULL) BZFREE(s->arr1);
@@ -362,7 +362,7 @@ Bool handle_compress ( bz_stream* strm )
 {
    Bool progress_in  = False;
    Bool progress_out = False;
-   EState* s = strm->state;
+   EState* s = (EState*) strm->state;
    
    while (True) {
 
@@ -409,7 +409,7 @@ int BZ_API(BZ2_bzCompress) ( bz_stream *strm, int action )
    Bool progress;
    EState* s;
    if (strm == NULL) return BZ_PARAM_ERROR;
-   s = strm->state;
+   s = (EState*) strm->state;
    if (s == NULL) return BZ_PARAM_ERROR;
    if (s->strm != strm) return BZ_PARAM_ERROR;
 
@@ -469,7 +469,7 @@ int BZ_API(BZ2_bzCompressEnd)  ( bz_stream *strm )
 {
    EState* s;
    if (strm == NULL) return BZ_PARAM_ERROR;
-   s = strm->state;
+   s = (EState*) strm->state;
    if (s == NULL) return BZ_PARAM_ERROR;
    if (s->strm != strm) return BZ_PARAM_ERROR;
 
@@ -505,7 +505,7 @@ int BZ_API(BZ2_bzDecompressInit)
    if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc;
    if (strm->bzfree == NULL) strm->bzfree = default_bzfree;
 
-   s = BZALLOC( sizeof(DState) );
+   s = (DState*) BZALLOC( sizeof(DState) );
    if (s == NULL) return BZ_MEM_ERROR;
    s->strm                  = strm;
    strm->state              = s;
@@ -684,7 +684,10 @@ Bool unRLE_obuf_to_output_FAST ( DState* s )
 
 
 /*---------------------------------------------------*/
-__inline__ Int32 BZ2_indexIntoF ( Int32 indx, Int32 *cftab )
+#ifndef __cplusplus
+__inline__
+#endif
+Int32 BZ2_indexIntoF ( Int32 indx, Int32 *cftab )
 {
    Int32 nb, na, mid;
    nb = 0;
@@ -810,7 +813,7 @@ int BZ_API(BZ2_bzDecompress) ( bz_stream *strm )
    Bool    corrupt;
    DState* s;
    if (strm == NULL) return BZ_PARAM_ERROR;
-   s = strm->state;
+   s = (DState*) strm->state;
    if (s == NULL) return BZ_PARAM_ERROR;
    if (s->strm != strm) return BZ_PARAM_ERROR;
 
@@ -863,7 +866,7 @@ int BZ_API(BZ2_bzDecompressEnd)  ( bz_stream *strm )
 {
    DState* s;
    if (strm == NULL) return BZ_PARAM_ERROR;
-   s = strm->state;
+   s = (DState*) strm->state;
    if (s == NULL) return BZ_PARAM_ERROR;
    if (s->strm != strm) return BZ_PARAM_ERROR;
 
@@ -934,7 +937,7 @@ BZFILE* BZ_API(BZ2_bzWriteOpen)
    if (ferror(f))
       { BZ_SETERR(BZ_IO_ERROR); return NULL; };
 
-   bzf = malloc ( sizeof(bzFile) );
+   bzf = (bzFile*) malloc ( sizeof(bzFile) );
    if (bzf == NULL)
       { BZ_SETERR(BZ_MEM_ERROR); return NULL; };
 
@@ -982,7 +985,7 @@ void BZ_API(BZ2_bzWrite)
       { BZ_SETERR(BZ_OK); return; };
 
    bzf->strm.avail_in = len;
-   bzf->strm.next_in  = buf;
+   bzf->strm.next_in  = (char*)buf;
 
    while (True) {
       bzf->strm.avail_out = BZ_MAX_UNUSED;
@@ -1107,7 +1110,7 @@ BZFILE* BZ_API(BZ2_bzReadOpen)
    if (ferror(f))
       { BZ_SETERR(BZ_IO_ERROR); return NULL; };
 
-   bzf = malloc ( sizeof(bzFile) );
+   bzf = (bzFile*) malloc ( sizeof(bzFile) );
    if (bzf == NULL) 
       { BZ_SETERR(BZ_MEM_ERROR); return NULL; };
 
@@ -1179,7 +1182,7 @@ int BZ_API(BZ2_bzRead)
       { BZ_SETERR(BZ_OK); return 0; };
 
    bzf->strm.avail_out = len;
-   bzf->strm.next_out = buf;
+   bzf->strm.next_out = (char*) buf;
 
    while (True) {
 
index bba5e0f..97cfb70 100644 (file)
@@ -209,13 +209,13 @@ Int32 BZ2_decompress ( DState* s )
       s->blockSize100k -= BZ_HDR_0;
 
       if (s->smallDecompress) {
-         s->ll16 = BZALLOC( s->blockSize100k * 100000 * sizeof(UInt16) );
-         s->ll4  = BZALLOC( 
+         s->ll16 = (UInt16*) BZALLOC( s->blockSize100k * 100000 * sizeof(UInt16) );
+         s->ll4  = (UChar*) BZALLOC( 
                       ((1 + s->blockSize100k * 100000) >> 1) * sizeof(UChar) 
                    );
          if (s->ll16 == NULL || s->ll4 == NULL) RETURN(BZ_MEM_ERROR);
       } else {
-         s->tt  = BZALLOC( s->blockSize100k * 100000 * sizeof(Int32) );
+         s->tt  = (UInt32*) BZALLOC( s->blockSize100k * 100000 * sizeof(Int32) );
          if (s->tt == NULL) RETURN(BZ_MEM_ERROR);
       }
 
index 3b46152..fabaa2a 100644 (file)
@@ -12,7 +12,7 @@ use Carp ;
 use bytes ;
 our ($VERSION, $XS_VERSION, @ISA, @EXPORT, $AUTOLOAD);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 $XS_VERSION = $VERSION; 
 $VERSION = eval $VERSION;
 
index 407d16a..008c0b3 100644 (file)
@@ -80,7 +80,7 @@ my $len   = length $hello ;
     title "Error Cases" ;
 
     eval { new Compress::Raw::Bzip2(1,2,3,4,5,6) };
-    like $@,  mkErr "Usage: Compress::Raw::Bzip2::new(class, appendOut=1, blockSize100k=1, workfactor=0, verbosity=0)";
+    like $@,  mkErr "Usage: Compress::Raw::Bzip2::new(className, appendOut=1, blockSize100k=1, workfactor=0, verbosity=0)";
 
 }