This is because you save the pointer and not the handle.
Memory pointer returned by MemHandleLock may vary from one
call to another because the system can compact actual memory to
prevent segmentation. Make your myAppPrefs.it handle instead of
pointer


----- Original Message ----- 
From: "Pit" <[EMAIL PROTECTED]>
Newsgroups: palm-dev-forum
To: "Palm Developer Forum" <[EMAIL PROTECTED]>
Sent: Monday, April 19, 2004 4:53 PM
Subject: Re: Problem with MemHandleResize - memErrChunkLocked


> Ok, so i did it!
>
> But now i have a problem with MemPtrRecoverHandle
> it works fine (also the fifth time), but after calling MemHandleSize
> i got an invalid handle - error!
>
>
>
> "Chris Apers" <[EMAIL PROTECTED]> schrieb im Newsbeitrag
> news:[EMAIL PROTECTED]
> > You need to lock it only if you want to read/write data from this
handle.
> >
> > ----- Original Message ----- 
> > From: "Pit" <[EMAIL PROTECTED]>
> > Newsgroups: palm-dev-forum
> > To: "Palm Developer Forum" <[EMAIL PROTECTED]>
> > Sent: Monday, April 19, 2004 4:33 PM
> > Subject: Re: Problem with MemHandleResize - memErrChunkLocked
> >
> >
> > > Hi,
> > >
> > > thank for your fast answer, but i am not sure if i understand you
> correct.
> > >
> > > I thougth i must call MemHandleLock before doing something with the
> > handle!
> > >
> > > Thanks
> > > Peter
> > >
> > > "Chris Apers" <[EMAIL PROTECTED]> schrieb im Newsbeitrag
> > > news:[EMAIL PROTECTED]
> > > > You call MemHandleLock before MemHandleResize this is why you have
> > > > this error.
> > > >
> > > > ----- Original Message ----- 
> > > > From: "Pit" <[EMAIL PROTECTED]>
> > > > Newsgroups: palm-dev-forum
> > > > To: "Palm Developer Forum" <[EMAIL PROTECTED]>
> > > > Sent: Monday, April 19, 2004 3:54 PM
> > > > Subject: Problem with MemHandleResize - memErrChunkLocked
> > > >
> > > >
> > > > > Hi folks,
> > > > >
> > > > > im having troubles with the MemHandleResize-function. I use this
> > > function
> > > > in
> > > > > the following code:
> > > > >
> > > > > When i call this function 4 times: everthing is OK!
> > > > > When i call it the fifth time, i get an memErrChunkLocked-error.
> > > > >
> > > > > I dont know why this happens, and i m getting more and more
> > frustrated.
> > > I
> > > > > hope there is anybody, who
> > > > > can point me to the problem and hopefully to the solution.
> > > > >
> > > > > Best Regards
> > > > > Peter
> > > > >
> > > > >
> > > > > static void SaveIT (char* it) {
> > > > >  Err error;
> > > > >  MemHandle itHandle;
> > > > >  MemHandle itemHandle;
> > > > >  UInt16 oldSize;
> > > > >  int position;
> > > > >
> > > > >  if (myAppPrefs.it== NULL) {
> > > > >       itHandle= MemHandleNew (sizeof (char*));
> > > > >       myAppPrefs.it= MemHandleLock (itHandle);
> > > > >           itemHandle = MemHandleNew (StrLen (it) + 1);
> > > > >           myAppPrefs.it[0] = MemHandleLock (itemHandle);
> > > > >           StrCopy (myAppPrefs.it[0], it);
> > > > >           MemHandleUnlock (itemHandle);
> > > > >       MemHandleUnlock (itHandle);
> > > > >  }
> > > > >  else {
> > > > >       itHandle= MemPtrRecoverHandle (myAppPrefs.it);
> > > > >       oldSize = MemHandleSize (itHandle);
> > > > >       position = oldSize / sizeof (char*);
> > > > >
> > > > >       MemHandleLock (itHandle);
> > > > >       error = MemHandleResize (itHandle, oldSize + sizeof
(char*));
> > > > >       if (error == memErrChunkLocked) {
> > > > >            PrintToField ("memErrChunkLocked");
> > > > >       }
> > > > >
> > > > >           itemHandle = MemHandleNew (StrLen (it) + 1);
> > > > >           myAppPrefs.it[position] = MemHandleLock (itemHandle);
> > > > >           StrCopy (myAppPrefs.it[position], it);
> > > > >           MemHandleUnlock (itemHandle);
> > > > >
> > > > >       MemHandleUnlock (itHandle);
> > > > >  }
> > > > > }
> > > > >
> > > > > The used struct, hast the following design
> > > > >
> > > > > typedef struct {
> > > > >  int number;
> > > > >  char** nothing;
> > > > >  char** it;
> > > > > } AppPrefs;
> > > > > AppPrefs myAppPrefs = {-1, NULL, NULL}; // Initialization
> > > > >
> > > > >
> > > > >
> > > > > -- 
> > > > > For information on using the Palm Developer Forums, or to
> unsubscribe,
> > > > please see http://www.palmos.com/dev/support/forums/
> > > > >
> > > >
> > >
> > >
> > >
> > > -- 
> > > For information on using the Palm Developer Forums, or to unsubscribe,
> > please see http://www.palmos.com/dev/support/forums/
> > >
> >
>
>
>
> -- 
> For information on using the Palm Developer Forums, or to unsubscribe,
please see http://www.palmos.com/dev/support/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