At 04:15 AM 5/28/2006, you wrote:
Subject: Re: Memory Leak
From: "Carlos Gonzalez" <[EMAIL PROTECTED]>
Date: Sat, 27 May 2006 18:31:44 -0000
X-Message-Number: 10
Thanks everyone for all your inputs. Here is the final code that
works fine with no more memory leak. Thanks againn everyone.
textH = FldGetTextHandle(GetObjectPtr(MainFieldRisk));
if (!textH)
{
textH = MemHandleNew(8);
}
str = MemHandleLock(textH);
doubleToStr(str, PI, 2);
MemHandleUnlock(textH);
FldSetTextHandle(GetObjectPtr(MainFieldRisk),textH);
FldDrawField(GetObjectPtr(MainFieldRisk));
return handled;
}
My previous comment on lack of error handling still applies.
Safer code would be:
FieldType *fldP = GetObjectPtr(MainFieldRisk);
if (!fldP) return false;
textH = FldGetTextHandle(fldP);
if (!textH)
{
textH = MemHandleNew(8);
if (!textH) return false;
}
str = MemHandleLock(textH);
if (str) {
doubleToStr(str, PI, 2);
MemHandleUnlock(textH);
if (MemHandleSize(textH) < StrLen(str) + 1)
SysFatalError ("Buffer overflow!");
} else return false;
FldSetTextHandle(fldP, textH);
FldDrawField(fldP);
return handled;
}
Roger Stringer
Marietta Systems, Inc. (www.rf-tp.com)
--
For information on using the PalmSource Developer Forums, or to unsubscribe,
please see http://www.palmos.com/dev/support/forums/