version 2003
PA_SetHandleSize (ahandle; newlen) char
| Parameter | Type | Description | |
| ahandle | PA_Handle | Handle to a valid memory block | |
| newlen | long | Desired new size | |
| Function result | char | True (1) if successful |
Description
The routine PA_SetHandleSize shrinks or expands the size of the memory block led to by aHandle.
Handle must be a valid PA_Handle obtained from PA_NewHandle (or MacOS trap NewHandle).
A call to PA_GetLastError should always be done after using PA_SetHandleSize.
Example
Append data to an existing PA_Handle.
short AppendDataToHandle(PA_Handle srce, char *toAppend, long size)
{
long offset;
// doesn't work with NULL pointers...
if ( ! toAppend )
return kERR_MyNullPointerError;
// get the source handle size
offset = PA_GetHandleSize(srce);
if ( PA_GetLastError() == eER_NoErr )
{
// make room for the new data at the end of the handle
// and copy data to it
PA_SetHandleSize( srce, offset + size );
if ( PA_GetLastError() == eER_NoErr )
PA_MoveBlock( toAppend, *srce + offset, size );
}
return PA_GetLastError();
}
See Also
Error Handling
Use PA_GetLastError to see if an error occurred (insufficient memory, not a valid PA_Handle, etc.).