Skip to content

Commit 09c64d8

Browse files
committed
[io] reduce compression buffer length
Fixes #14651
1 parent b6fb6bd commit 09c64d8

File tree

4 files changed

+5
-5
lines changed

4 files changed

+5
-5
lines changed

io/io/src/TKey.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ TKey::TKey(const TObject *obj, const char *name, Int_t bufsize, TDirectory* moth
251251
ROOT::RCompressionSetting::EAlgorithm::EValues cxAlgorithm = static_cast<ROOT::RCompressionSetting::EAlgorithm::EValues>(GetFile() ? GetFile()->GetCompressionAlgorithm() : 0);
252252
if (cxlevel > 0 && fObjlen > 256) {
253253
Int_t nbuffers = 1 + (fObjlen - 1)/kMAXZIPBUF;
254-
Int_t buflen = std::max(512,fKeylen + fObjlen + 9*nbuffers + 28); //add 28 bytes in case object is placed in a deleted gap
254+
Int_t buflen = std::max(512, fKeylen + fObjlen);
255255
fBuffer = new char[buflen];
256256
char *objbuf = fBufferRef->Buffer() + fKeylen;
257257
char *bufcur = &fBuffer[fKeylen];
@@ -346,7 +346,7 @@ TKey::TKey(const void *obj, const TClass *cl, const char *name, Int_t bufsize, T
346346
ROOT::RCompressionSetting::EAlgorithm::EValues cxAlgorithm = static_cast<ROOT::RCompressionSetting::EAlgorithm::EValues>(GetFile() ? GetFile()->GetCompressionAlgorithm() : 0);
347347
if (cxlevel > 0 && fObjlen > 256) {
348348
Int_t nbuffers = 1 + (fObjlen - 1)/kMAXZIPBUF;
349-
Int_t buflen = std::max(512,fKeylen + fObjlen + 9*nbuffers + 28); //add 28 bytes in case object is placed in a deleted gap
349+
Int_t buflen = std::max(512, fKeylen + fObjlen);
350350
fBuffer = new char[buflen];
351351
char *objbuf = fBufferRef->Buffer() + fKeylen;
352352
char *bufcur = &fBuffer[fKeylen];

io/xml/src/TBufferXML.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ void TBufferXML::XmlWriteBlock(XMLNodePointer_t node)
404404

405405
if ((Length() > 512) && (compressionLevel > 0)) {
406406
int zipBufferSize = Length();
407-
fZipBuffer = new char[zipBufferSize + 9];
407+
fZipBuffer = new char[zipBufferSize];
408408
int dataSize = Length();
409409
int compressedSize = 0;
410410
R__zipMultipleAlgorithm(compressionLevel, &dataSize, Buffer(), &zipBufferSize, fZipBuffer, &compressedSize,

net/net/src/TMessage.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ Int_t TMessage::Compress()
362362
Int_t messlen = Length() - hdrlen;
363363
Int_t nbuffers = 1 + (messlen - 1) / kMAXZIPBUF;
364364
Int_t chdrlen = 3*sizeof(UInt_t); // compressed buffer header length
365-
Int_t buflen = std::max(512, chdrlen + messlen + 9*nbuffers);
365+
Int_t buflen = std::max(512, chdrlen + messlen);
366366
fBufComp = new char[buflen];
367367
char *messbuf = Buffer() + hdrlen;
368368
char *bufcur = fBufComp + chdrlen;

tree/tree/src/TBasket.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1218,7 +1218,7 @@ Int_t TBasket::WriteBuffer()
12181218
cxAlgorithm = static_cast<ROOT::RCompressionSetting::EAlgorithm::EValues>(file->GetCompressionAlgorithm());
12191219
if (cxlevel > 0) {
12201220
Int_t nbuffers = 1 + (fObjlen - 1) / kMAXZIPBUF;
1221-
Int_t buflen = fKeylen + fObjlen + 9 * nbuffers + 28; //add 28 bytes in case object is placed in a deleted gap
1221+
Int_t buflen = fKeylen + fObjlen;
12221222
InitializeCompressedBuffer(buflen, file);
12231223
if (!fCompressedBufferRef) {
12241224
Warning("WriteBuffer", "Unable to allocate the compressed buffer");

0 commit comments

Comments
 (0)