[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
_xvheapdestroy()
Free the segment allocated for a segment heap
------------------------------------------------------------------------------
C Prototype
#include "vm.api"
void _xvheapdestroy(
HANDLE hSegment
)
Arguments
hSegment is the VM segment handle returned by _xvheapnew().
Returns
_xvheapdestroy() has no return value.
Description
_xvheapdestroy() frees a VM segment previously allocated as a segment
heap with _xvheapnew() and invalidates the handle of that segment.
Warning! _xvheapdestroy() frees the entire segment heap. Before
using this function, you must use_xvheapfree() to free all memory blocks
allocated within the segment heap.
Examples
. This example creates a segment heap with _xvheapnew() and
allocates a memory block in the segment heap. The block is then
locked and the string is copied into it. Later, the memory block is
unlocked, the memory freed, and the heap destroyed:
// CA-Clipper include files
#include "extend.api"
#include "vm.api"
// Microsoft C include files
#include "string.h"
// Prototype
Boolean VMHeapExample(char * spSrc);
#define HEAP_SIZE 4096
Boolean VMHeapExample(char * spSrc)
{
HANDLE hSegment;
unsigned uiStringOffset;
unsigned uiBufflen;
char * spString;
Boolean bResult = FALSE;
if (hSegment = _xvheapnew(HEAP_SIZE))
{
uiBufflen = strlen(spSrc) + 1;
uiStringOffset = _xvheapalloc(hSegment, uiBufflen);
if (uiStringOffset)
{
spString = _xvheaplock(hSegment, uiStringOffset);
if (spString != NULL)
{
strcpy(spString, spSrc);
.
. <statements>
.
bResult = TRUE;
_xvheapunlock(hSegment, uiStringOffset);
}
_xvheapfree(hSegment, uiStringOffset);
}
_xvheapdestroy(hSegment);
}
return (bResult);
}
Files Library is CLIPPER.LIB, header file is Vm.api.
See Also:
_xvheapfree()
_xvheapnew()
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson