Hi Ben

I have tried to use FtrPtrNew() in the code fragment below but the same
crash occurs so I am wondering if I am missing something.

char* pNew;
FtrPtrNew(DB_CREATOR, 0, StrLen(TITLE) + 1, (void**)(&pNew));
DmSet(pNew, 0, StrLen(TITLE) + 1, 0);
DmWrite(pNew, 0, TITLE, StrLen(TITLE));
FrmSetTitle(pForm, pNew);

There are many improvements I could do to my code; I just want to get it
working first. By the way, is there a way of knowing what type a table cell
is?

Kind regards

Patrick
"Ben Combee" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> At 08:26 AM 8/16/2004, you wrote:
> >Guys
> >
> >I can't figure that one out. The following code works fine when pForm
points
> >to my program's own form but crashes when pForm points to a different
form.
> >
> >FormType* pForm = FrmGetActiveForm();
> >char* pOld = (char*)FrmGetTitle(pForm);
> >char* pNew = (char*)MemPtrNew(6);
> >MemSet(pNew 6, 0);
> >MemMove(pNew, "Title", 5);
> >FrmSetTitle(pForm, pNew);
>
> Just using StrCopy(pNew, "Title) is adequate and faster than the MemSet
and
> MemMove.
>
> >The crash occurs on the last line.
> >
> >Could well be that the pointer returned by MemPtrNew() is valid for my
> >program's own form but not for any other form. How can I get a pointer
that
> >will be valid throughout the system (i.e. nol matter what program it gets
> >passed to)?
>
> This is correct.  Each application gets its own memory owner ID, and when
> your application exits, the system will free any memory chunks allocated
to
> that ID.
>
> In Palm OS 5 and earlier, you can use MemPtrSetOwner to set the pointer's
> owner ID to 0, which is the system ID.  However, if you do that, you'll
> have a memory leak since that text will never be freed -- closing the form
> won't deallocate your string.
>
> In this case, it's better to use Feature Memory with a FtrPtrNew.  The
> pointer will stay valid, the memory won't be freed, but it will be tracked
> by your program and you can reuse the memory chunk or free it later.
>
> Still, overwriting the current form's title is pretty rude, and won't
> always work -- some forms don't have titles, for example.
>
> -- Ben Combee, DTS technical lead, PalmSource, Inc.
>     "Combee on Palm OS" weblog: http://palmos.combee.net/
>     Palm OS Dev Fourm Archives: http://news.palmos.com/read/all_forums/
>
>
>



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/

Reply via email to