From eca09fb129d3c1f4a6524f1b35b5ee648afdb26b Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Tue, 23 Jun 1998 15:10:36 +0000 Subject: [PATCH] fixed use of nill ptr in gdd::put(const gdd* dd) --- src/gdd/gdd.cc | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/gdd/gdd.cc b/src/gdd/gdd.cc index 73f16d41d..00e4630c0 100644 --- a/src/gdd/gdd.cc +++ b/src/gdd/gdd.cc @@ -4,6 +4,9 @@ // $Id$ // // $Log$ +// Revision 1.24 1998/06/16 03:15:34 jhill +// fixed big problems with leaked ait/fixedString in gdd union +// // Revision 1.23 1997/08/05 00:51:11 jhill // fixed problems in aitString and the conversion matrix // @@ -1250,15 +1253,21 @@ gddStatus gdd::put(const gdd* dd) if(rc==0) { - esz=describedDataSizeElements(); + if (dd->dataPointer()==NULL) { + memset (dataPointer(), '\0', describedDataSizeBytes()); + rc = gddErrorNotDefined; + } + else { + esz=describedDataSizeElements(); - // this code currently only works correctly with one - // dimensional arrays. + // this code currently only works correctly with one + // dimensional arrays. - arr=(aitUint8*)dataPointer(); - aitConvert(primitiveType(), - &arr[aitSize[primitiveType()]*dd->getBounds()->first()], - dd->primitiveType(), dd->dataPointer(),esz); + arr=(aitUint8*)dataPointer(); + aitConvert(primitiveType(), + &arr[aitSize[primitiveType()]*dd->getBounds()->first()], + dd->primitiveType(), dd->dataPointer(),esz); + } } }