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/

Reply via email to