Re: [Dcmlib] Amélioration des Memory leak
Benoit Regrain
benoit.regrain at creatis.insa-lyon.fr
Wed Nov 17 14:14:44 CET 2004
Hi,
Afin d'offrir une utilisation plus simple, j'ai mis la copie des données binaires dans la méthode
ReplaceOrCreateByNumber. Désormais, tous les ReplaceOrCreateByNumber fonctionnement
de la même manière en copiant les données passées en entrée.
Désolé d'avoir cassé le test TestCopyDicom sous linux.
Coté Windows, si quelqu'un a une idée pour que ce test passe, je suis preneur. Il semble que
le problème soit lié à la Hash Table récupérée.
Benoit
----- Original Message -----
From: Jean-Michel Rouet
To: dcmlib at creatis.insa-lyon.fr
Sent: Tuesday, November 16, 2004 9:54 PM
Subject: [Dcmlib] Amélioration des Memory leak
Pour TestCopyDicom.cxx voici un petit patch qui devrait regler l'affaire:
rouet at vanoise:~/src/gdcm/Test$ cvs diff -u TestCopyDicom.cxx
Index: TestCopyDicom.cxx
===================================================================
RCS file: /cvs/public/gdcm/Test/TestCopyDicom.cxx,v
retrieving revision 1.16
diff -u -r1.16 TestCopyDicom.cxx
--- TestCopyDicom.cxx 16 Nov 2004 04:28:20 -0000 1.16
+++ TestCopyDicom.cxx 16 Nov 2004 20:51:07 -0000
@@ -91,6 +91,7 @@
size_t dataSize = original->GetImageDataSize();
uint8_t* imageData = original->GetImageData();
+
//First of all copy the header field by field
// Warning :Accessor gdcmElementSet::GetEntry() should not exist
@@ -105,8 +106,13 @@
d = tag->second;
if ( gdcm::BinEntry* b = dynamic_cast<gdcm::BinEntry*>(d) )
{
+ uint8_t* copybin = new uint8_t[b->GetLength()];
+ if (b->GetBinArea())
+ memcpy(copybin,b->GetBinArea(), b->GetLength());
+ else
+ copybin = 0;
copy->GetHeader()->ReplaceOrCreateByNumber(
- b->GetBinArea(),
+ copybin,
b->GetLength(),
b->GetGroup(),
b->GetElement(),
@@ -130,7 +136,6 @@
}
}
- copy->SetImageData(imageData, dataSize);
original->GetHeader()->SetImageDataSize(dataSize);
copy->WriteDcmExplVR( output );
@@ -147,6 +152,7 @@
std::cout << output << " Failed" << std::endl;
}
i++;
+ delete copy;
}
return retVal;
}
------------------------------------------------------------------------------
_______________________________________________
Dcmlib mailing list
Dcmlib at creatis.insa-lyon.fr
http://www.creatis.insa-lyon.fr/mailman/listinfo/dcmlib
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.creatis.insa-lyon.fr/pipermail/dcmlib/attachments/20041117/4b5e533c/attachment.html>
More information about the Dcmlib
mailing list