aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Buland <eichlan@xagasoft.com>2022-04-15 08:46:54 -0700
committerMike Buland <eichlan@xagasoft.com>2022-04-15 08:46:54 -0700
commit6e3124d6aec9d4ad9fbe92beec82add5e1a811fe (patch)
tree80f7453fa7ff35cec10736bad7f5b304c5d4b929
parent1c4372bbff3e5978b19bd25cf1310078d0977d08 (diff)
downloadlibbu++-6e3124d6aec9d4ad9fbe92beec82add5e1a811fe.tar.gz
libbu++-6e3124d6aec9d4ad9fbe92beec82add5e1a811fe.tar.bz2
libbu++-6e3124d6aec9d4ad9fbe92beec82add5e1a811fe.tar.xz
libbu++-6e3124d6aec9d4ad9fbe92beec82add5e1a811fe.zip
Augments to Blob and BlobBuilder.
You can construct a BlobBuilder from a Blob now, and Blob has an extra null byte of padding just in case you use a Blob to store a string.
-rw-r--r--src/unstable/blob.cpp3
-rw-r--r--src/unstable/blobbuilder.cpp13
-rw-r--r--src/unstable/blobbuilder.h1
3 files changed, 16 insertions, 1 deletions
diff --git a/src/unstable/blob.cpp b/src/unstable/blob.cpp
index 69ec28f..e72e265 100644
--- a/src/unstable/blob.cpp
+++ b/src/unstable/blob.cpp
@@ -31,9 +31,10 @@ Bu::Blob::Blob( const class BlobBuilder &rSrc ) :
31 iSize( 0 ) 31 iSize( 0 )
32{ 32{
33 iSize = rSrc.getSize(); 33 iSize = rSrc.getSize();
34 pData = new char[iSize]; 34 pData = new char[iSize+1];
35 35
36 rSrc.copyTo( pData, iSize ); 36 rSrc.copyTo( pData, iSize );
37 pData[iSize] = '\0';
37} 38}
38 39
39Bu::Blob::Blob( const char *pSrc ) : 40Bu::Blob::Blob( const char *pSrc ) :
diff --git a/src/unstable/blobbuilder.cpp b/src/unstable/blobbuilder.cpp
index fd62cb0..29646ba 100644
--- a/src/unstable/blobbuilder.cpp
+++ b/src/unstable/blobbuilder.cpp
@@ -88,6 +88,14 @@ Bu::BlobBuilderCore::BlobBuilderCore() :
88{ 88{
89} 89}
90 90
91Bu::BlobBuilderCore::BlobBuilderCore( const Bu::Blob &rSrc ) :
92 pFirst( 0 ),
93 pLast( 0 ),
94 iLength( 0 )
95{
96 append( rSrc.getData(), rSrc.getSize() );
97}
98
91Bu::BlobBuilderCore::BlobBuilderCore( const Bu::BlobBuilderCore &rSrc ) : 99Bu::BlobBuilderCore::BlobBuilderCore( const Bu::BlobBuilderCore &rSrc ) :
92 pFirst( 0 ), 100 pFirst( 0 ),
93 pLast( 0 ), 101 pLast( 0 ),
@@ -239,6 +247,11 @@ Bu::BlobBuilder::BlobBuilder()
239{ 247{
240} 248}
241 249
250Bu::BlobBuilder::BlobBuilder( const Bu::Blob &rSrc )
251{
252 append( rSrc );
253}
254
242Bu::BlobBuilder::BlobBuilder( const Bu::BlobBuilder &rSrc ) : 255Bu::BlobBuilder::BlobBuilder( const Bu::BlobBuilder &rSrc ) :
243 Bu::SharedCore<Bu::BlobBuilder, Bu::BlobBuilderCore>( rSrc ) 256 Bu::SharedCore<Bu::BlobBuilder, Bu::BlobBuilderCore>( rSrc )
244{ 257{
diff --git a/src/unstable/blobbuilder.h b/src/unstable/blobbuilder.h
index c343a4f..c2995cb 100644
--- a/src/unstable/blobbuilder.h
+++ b/src/unstable/blobbuilder.h
@@ -45,6 +45,7 @@ namespace Bu
45 }; 45 };
46 46
47 BlobBuilderCore(); 47 BlobBuilderCore();
48 BlobBuilderCore( const Bu::Blob &rSrc );
48 BlobBuilderCore( const BlobBuilderCore &rSrc ); 49 BlobBuilderCore( const BlobBuilderCore &rSrc );
49 virtual ~BlobBuilderCore(); 50 virtual ~BlobBuilderCore();
50 51