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/

Reply via email to