summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2017-10-04 18:16:38 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2017-10-04 18:16:38 (GMT)
commit308eb4daf4271a1052f67e46c874fdf9cf5bf1e6 (patch)
treef43da00878633d39d794ab43f652a2cf52254294
parent75c011ab3cea761212d11d5a15fe528fbbcdbcea (diff)
downloadblt-308eb4daf4271a1052f67e46c874fdf9cf5bf1e6.zip
blt-308eb4daf4271a1052f67e46c874fdf9cf5bf1e6.tar.gz
blt-308eb4daf4271a1052f67e46c874fdf9cf5bf1e6.tar.bz2
track down memory leaks with getString
-rw-r--r--tksao/fitsy++/column.C9
-rw-r--r--tksao/fitsy++/compress.C4
-rw-r--r--tksao/fitsy++/hdu.C3
3 files changed, 9 insertions, 7 deletions
diff --git a/tksao/fitsy++/column.C b/tksao/fitsy++/column.C
index 9603182..5766bf2 100644
--- a/tksao/fitsy++/column.C
+++ b/tksao/fitsy++/column.C
@@ -16,6 +16,7 @@ using namespace std;
#include "column.h"
#include "file.h"
#include "head.h"
+#include "util.h"
FitsColumn::FitsColumn(FitsHead* head, int i, int off)
{
@@ -24,9 +25,9 @@ FitsColumn::FitsColumn(FitsHead* head, int i, int off)
offset_ = off;
type_ = ' ';
- tform_ = head->getStringCopy(keycat("TFORM",i));
- ttype_ = head->getStringCopy(keycat("TTYPE",i));
- tunit_ = head->getStringCopy(keycat("TUNIT",i));
+ tform_ = dupstr(head->getString(keycat("TFORM",i)));
+ ttype_ = dupstr(head->getString(keycat("TTYPE",i)));
+ tunit_ = dupstr(head->getString(keycat("TUNIT",i)));
tscal_ = head->getReal(keycat("TSCAL",i), 1);
tzero_ = head->getReal(keycat("TZERO",i), 0);
hastnull_ = head->find(keycat("TNULL",i)) ? 1:0;
@@ -183,7 +184,7 @@ template <> Vector FitsAsciiColumnT<double>::dimension()
FitsBinColumn::FitsBinColumn(FitsHead* head, int i, int offset)
: FitsColumn(head, i, offset)
{
- tdisp_ = head->getStringCopy(keycat("TDISP",i));
+ tdisp_ = dupstr(head->getString(keycat("TDISP",i)));
repeat_ = 1;
if (tform_) {
diff --git a/tksao/fitsy++/compress.C b/tksao/fitsy++/compress.C
index 425b4b1..8e980e1 100644
--- a/tksao/fitsy++/compress.C
+++ b/tksao/fitsy++/compress.C
@@ -10,7 +10,7 @@
FitsCompress::FitsCompress(FitsFile* fits)
{
bitpix_ = fits->getInteger("ZBITPIX",0);
- type_ = fits->getStringCopy("ZCMPTYPE");
+ type_ = dupstr(fits->getString("ZCMPTYPE"));
// int naxes = fits->getInteger("ZNAXIS",0);
width_ = fits->getInteger("ZNAXIS1",0);
height_ = fits->getInteger("ZNAXIS2",0);
@@ -23,7 +23,7 @@ FitsCompress::FitsCompress(FitsFile* fits)
bscale_ = fits->getReal("ZSCALE",1);
bzero_ = fits->getReal("ZZERO",0);
blank_ = fits->getInteger("ZBLANK",0);
- zmaskcmp_ = fits->getStringCopy("ZMASKCMP");
+ zmaskcmp_ = dupstr(fits->getString("ZMASKCMP"));
quantize_ = NODITHER;
char keyword[] = "ZQUANTIZ";
diff --git a/tksao/fitsy++/hdu.C b/tksao/fitsy++/hdu.C
index 7a1715b..a3e2153 100644
--- a/tksao/fitsy++/hdu.C
+++ b/tksao/fitsy++/hdu.C
@@ -13,10 +13,11 @@ using namespace std;
#include "hdu.h"
#include "head.h"
+#include "util.h"
FitsHDU::FitsHDU(FitsHead* head)
{
- extname_ = head->getStringCopy("EXTNAME");
+ extname_ = dupstr(head->getString("EXTNAME"));
// trim any spaces at end
if (extname_) {
for (int ii=strlen(extname_)-1; ii>=0; ii--) {