本文整理汇总了C++中ckfree函数的典型用法代码示例。如果您正苦于以下问题:C++ ckfree函数的具体用法?C++ ckfree怎么用?C++ ckfree使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ckfree函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: UpdateScrollbar
/* UpdateScrollbar --
* Call the -scrollcommand callback to sync the scrollbar.
* Returns: Whatever the -scrollcommand does.
*/
static int UpdateScrollbar(Tcl_Interp *interp, ScrollHandle h)
{
Scrollable *s = h->scrollPtr;
WidgetCore *corePtr = h->corePtr;
char arg1[TCL_DOUBLE_SPACE + 2];
char arg2[TCL_DOUBLE_SPACE + 2];
int code;
h->flags &= ~SCROLL_UPDATE_REQUIRED;
if (s->scrollCmd == NULL) {
return TCL_OK;
}
arg1[0] = arg2[0] = ' ';
Tcl_PrintDouble(interp, (double)s->first / s->total, arg1+1);
Tcl_PrintDouble(interp, (double)s->last / s->total, arg2+1);
Tcl_Preserve(corePtr);
code = Tcl_VarEval(interp, s->scrollCmd, arg1, arg2, NULL);
if (WidgetDestroyed(corePtr)) {
Tcl_Release(corePtr);
return TCL_ERROR;
}
Tcl_Release(corePtr);
if (code != TCL_OK && !Tcl_InterpDeleted(interp)) {
/* Disable the -scrollcommand, add to stack trace:
*/
ckfree(s->scrollCmd);
s->scrollCmd = 0;
Tcl_AddErrorInfo(interp, /* @@@ "horizontal" / "vertical" */
"\n (scrolling command executed by ");
Tcl_AddErrorInfo(interp, Tk_PathName(h->corePtr->tkwin));
Tcl_AddErrorInfo(interp, ")");
}
return code;
}
示例2: TclKit_SetKitPath
extern char *
#endif
TclKit_SetKitPath(const char *kitPath)
{
/*
* Allow someone to define an alternate path to the base kit
* than 'info nameofexecutable'.
* NOTE: this must be provided as a utf-8 encoded string or it may
* fail when the path includes non-ascii characters.
*/
if (kitPath) {
int len = (int)strlen(kitPath);
if (tclKitPath) {
ckfree(tclKitPath);
}
tclKitPath = (char *) ckalloc(len + 1);
memcpy(tclKitPath, kitPath, len);
tclKitPath[len] = '\0';
}
return tclKitPath;
}
示例3: popredir
void
popredir(void)
{
struct redirtab *rp = redirlist;
int i;
for (i = 0 ; i < 10 ; i++) {
if (rp->renamed[i] != EMPTY) {
if (rp->renamed[i] >= 0) {
dup2(rp->renamed[i], i);
close(rp->renamed[i]);
} else {
close(i);
}
}
}
INTOFF;
fd0_redirected = rp->fd0_redirected;
redirlist = rp->next;
ckfree(rp);
INTON;
}
示例4: TclHandleRelease
void
TclHandleRelease(
TclHandle handle) /* Unregister interest in the block of memory
* referenced by this handle. */
{
HandleStruct *handlePtr;
handlePtr = (HandleStruct *) handle;
#ifdef TCL_MEM_DEBUG
if (handlePtr->refCount == 0x61616161) {
Tcl_Panic("using previously disposed TclHandle %x", handlePtr);
}
if ((handlePtr->ptr != NULL) && (handlePtr->ptr != handlePtr->ptr2)) {
Tcl_Panic("someone has changed the block referenced by the handle %x\nfrom %x to %x",
handlePtr, handlePtr->ptr2, handlePtr->ptr);
}
#endif
handlePtr->refCount--;
if ((handlePtr->refCount == 0) && (handlePtr->ptr == NULL)) {
ckfree((char *) handlePtr);
}
}
示例5: reset
void
reset(shinstance *psh) {
/* from /Volumes/ScratchHFS/bird/kBuild/svn/trunk/src/kash/eval.c: */
{
psh->evalskip = 0;
psh->loopnest = 0;
psh->funcnest = 0;
}
/* from /Volumes/ScratchHFS/bird/kBuild/svn/trunk/src/kash/input.c: */
{
if (psh->exception != EXSHELLPROC)
psh->parselleft = psh->parsenleft = 0; /* clear input buffer */
popallfiles(psh);
}
/* from /Volumes/ScratchHFS/bird/kBuild/svn/trunk/src/kash/output.c: */
{
psh->out1 = &psh->output;
psh->out2 = &psh->errout;
if (psh->memout.buf != NULL) {
ckfree(psh, psh->memout.buf);
psh->memout.buf = NULL;
}
}
/* from /Volumes/ScratchHFS/bird/kBuild/svn/trunk/src/kash/parser.c: */
{
psh->tokpushback = 0;
psh->checkkwd = 0;
}
/* from /Volumes/ScratchHFS/bird/kBuild/svn/trunk/src/kash/redir.c: */
{
while (psh->redirlist)
popredir(psh);
}
}
示例6: TnmVectorAdd
void
TnmVectorAdd(TnmVector *vPtr, ClientData clientData)
{
int i;
size_t size;
ClientData *dynamicSpace;
if (vPtr->size == vPtr->spaceAvl) {
vPtr->spaceAvl += TNM_VECTOR_STATIC_SIZE;
size = (vPtr->spaceAvl + 1) * sizeof(ClientData);
dynamicSpace = (ClientData *) ckalloc(size);
memset((char *) dynamicSpace, 0, size);
for (i = 0; i < vPtr->size; i++) {
dynamicSpace[i] = vPtr->elements[i];
}
if (vPtr->elements != vPtr->staticSpace) {
ckfree((char *) vPtr->elements);
}
vPtr->elements = dynamicSpace;
}
vPtr->elements[vPtr->size++] = clientData;
}
示例7: get_Genomic_from_Gene
Genomic * get_Genomic_from_Gene(Gene * gene)
{
Genomic * gn;
char buffer[64];
/* fprintf(stdout,"Getting genomic...\n"); */
if( gene->genomic != NULL )
return gene->genomic;
if( gene->parent == NULL ) {
warn("Cannot get Gene, as no parent genomic region!");
return NULL;
}
gn = get_Genomic_from_GenomicRegion(gene->parent);
if( gn == NULL) {
warn("Cannot get Gene, as no sequence in genomic region!");
return NULL;
}
if( gn->baseseq->offset < gn->baseseq->end) {
if( gene->start > gene->end )
gene->genomic = truncate_Genomic(gn,gene->start-gn->baseseq->offset+2,gene->end-gn->baseseq->offset+2);
else
gene->genomic = truncate_Genomic(gn,gene->start-gn->baseseq->offset+1,gene->end-gn->baseseq->offset+1);
}
else {
gene->genomic = truncate_Genomic(gn,gn->baseseq->offset-1 - gene->start,gn->baseseq->offset-1 - gene->end);
}
sprintf(buffer,"%s.[%d:%d]",Genomic_name(gn),gene->start+1,gene->end);
ckfree(gene->genomic->baseseq->name);
gene->genomic->baseseq->name = stringalloc(buffer);
return gene->genomic;
}
示例8: Tcl_EventuallyFree
void
Tcl_EventuallyFree(
ClientData clientData, /* Pointer to malloc'ed block of memory. */
Tcl_FreeProc *freeProc) /* Function to actually do free. */
{
Reference *refPtr;
int i;
/*
* See if there is a reference for this pointer. If so, set its "mustFree"
* flag (the flag had better not be set already!).
*/
Tcl_MutexLock(&preserveMutex);
for (i = 0, refPtr = refArray; i < inUse; i++, refPtr++) {
if (refPtr->clientData != clientData) {
continue;
}
if (refPtr->mustFree) {
Tcl_Panic("Tcl_EventuallyFree called twice for 0x%x",
clientData);
}
refPtr->mustFree = 1;
refPtr->freeProc = freeProc;
Tcl_MutexUnlock(&preserveMutex);
return;
}
Tcl_MutexUnlock(&preserveMutex);
/*
* No reference for this block. Free it now.
*/
if (freeProc == TCL_DYNAMIC) {
ckfree((char *) clientData);
} else {
(*freeProc)((char *)clientData);
}
}
示例9: popredir
void
popredir(void)
{
struct redirtab *rp = redirlist;
int i;
for (i = 0 ; i < 10 ; i++) {
if (rp->renamed[i] != EMPTY) {
if (i == 0)
fd0_redirected--;
close(i);
if (rp->renamed[i] >= 0) {
copyfd(rp->renamed[i], i, 1);
close(rp->renamed[i]);
}
}
}
INTOFF;
redirlist = rp->next;
ckfree(rp);
INTON;
}
示例10: printaliases
static void
printaliases(void)
{
int i, j;
struct alias **sorted, *ap;
INTOFF;
sorted = ckmalloc(aliases * sizeof(*sorted));
j = 0;
for (i = 0; i < ATABSIZE; i++)
for (ap = atab[i]; ap; ap = ap->next)
if (*ap->name != '\0')
sorted[j++] = ap;
qsort(sorted, aliases, sizeof(*sorted), comparealiases);
for (i = 0; i < aliases; i++) {
printalias(sorted[i]);
if (int_pending())
break;
}
ckfree(sorted);
INTON;
}
示例11: free_BaseMatrix
BaseMatrix * free_BaseMatrix(BaseMatrix * obj)
{
int i;
if( obj == NULL ) {
warn("Trying to free NULL basematrix object. Should be trappable");
return NULL;
}
if( obj->dynamite_hard_link > 1 ) {
obj->dynamite_hard_link--;
return NULL;
}
if(obj->matrix != NULL ) {
for(i=0;i<obj->leni;i++)
if( obj->matrix[i] != NULL ) {
ckfree(obj->matrix[i]);
}
free(obj->matrix);
}
if( obj->spec_len > 0 ) {
if( obj->specmatrix == NULL ) {
warn("Bad karma. you have a special matrix of length %d, but a NULL specmatrix pointer. I'm not going to free it!",obj->spec_len);
} else {
for(i=0;i<obj->spec_len;i++) {
if( obj->specmatrix[i] != NULL ) {
ckfree(obj->specmatrix[i]);
}
}
ckfree(obj->specmatrix);
} /* end of else */
} /* end of if specials */
if( obj->offsetmem != NULL )
ckfree(obj->offsetmem);
if( obj->setmem != NULL )
ckfree(obj->setmem);
ckfree(obj);
return NULL;
}
示例12: ForeachLoopStep
static int
ForeachLoopStep (ClientData data[], Tcl_Interp * interp, int result)
{
ForeachState *const statePtr = data[0];
Tcl_Obj *const varPtr = data[1];
DBFHandle const dbfHandle = data[2];
Tcl_Obj *const bodyPtr = data[3];
switch (result)
{
case TCL_CONTINUE:
result = TCL_OK;
case TCL_OK:
break;
case TCL_BREAK:
result = TCL_OK;
goto done;
case TCL_ERROR:
default:
goto done;
}
if (statePtr->length > ++statePtr->i)
{
if ((result =
ForeachAssignments (interp, statePtr, varPtr, dbfHandle)) != TCL_OK)
{
goto done;
}
Tcl_NRAddCallback (interp, ForeachLoopStep, statePtr, varPtr, dbfHandle,
bodyPtr);
return Tcl_NREvalObj (interp, bodyPtr, 0);
}
Tcl_ResetResult (interp);
done:
ckfree ((char *) statePtr);
return result;
}
示例13: reprocess
static void
reprocess(int startloc, int flag, int subtype, int quoted,
struct worddest *dst)
{
static char *buf = NULL;
static size_t buflen = 0;
char *startp;
size_t len, zpos, zlen;
startp = stackblock() + startloc;
len = expdest - startp;
if (len >= SIZE_MAX / 2)
abort();
INTOFF;
if (len >= buflen) {
ckfree(buf);
buf = NULL;
}
if (buflen < 128)
buflen = 128;
while (len >= buflen)
buflen <<= 1;
if (buf == NULL)
buf = ckmalloc(buflen);
INTON;
memcpy(buf, startp, len);
buf[len] = '\0';
STADJUST(-len, expdest);
for (zpos = 0;;) {
zlen = strlen(buf + zpos);
strtodest(buf + zpos, flag, subtype, quoted, dst);
zpos += zlen + 1;
if (zpos == len + 1)
break;
if (flag & EXP_SPLIT && (quoted || (zlen > 0 && zpos < len)))
NEXTWORD('\0', flag, expdest, dst);
}
}
示例14: IvyMsgCB
static void
IvyMsgCB(IvyClientPtr app,
void *user_data,
int argc,
char **argv)
{
filter_struct *filter = (filter_struct *) user_data;
int result, i, size;
char *script_to_call;
size = strlen(filter->script) + 3;
for (i = 0; i < argc; i++) {
size += strlen(argv[i]) + 3;
}
size ++;
size += strlen(IvyGetApplicationName(app))+4;
script_to_call = ckalloc(size);
strcpy(script_to_call, filter->script);
strcat(script_to_call, " \"");
strcat(script_to_call, IvyGetApplicationName(app));
strcat(script_to_call, "\"");
/* strcat(script_to_call, " {"); */
for (i = 0; i < argc; i++) {
strcat(script_to_call, " \"");
strcat(script_to_call, argv[i]);
strcat(script_to_call, "\"");
}
/* strcat(script_to_call, " }"); */
Tcl_Preserve(filter->interp);
result = Tcl_GlobalEval(filter->interp, script_to_call);
ckfree(script_to_call);
if (result != TCL_OK) {
Tcl_BackgroundError(filter->interp);
}
Tcl_Release(filter->interp);
}
示例15: free_cDNADB
/* Function: free_cDNADB(obj)
*
* Descrip: Free Function: removes the memory held by obj
* Will chain up to owned members and clear all lists
*
*
* Arg: obj [UNKN ] Object that is free'd [cDNADB *]
*
* Return [UNKN ] Undocumented return value [cDNADB *]
*
*/
cDNADB * free_cDNADB(cDNADB * obj)
{
int return_early = 0;
if( obj == NULL) {
warn("Attempting to free a NULL pointer to a cDNADB obj. Should be trappable");
return NULL;
}
#ifdef PTHREAD
assert(pthread_mutex_lock(&(obj->dynamite_mutex)) == 0);
#endif
if( obj->dynamite_hard_link > 1) {
return_early = 1;
obj->dynamite_hard_link--;
}
#ifdef PTHREAD
assert(pthread_mutex_unlock(&(obj->dynamite_mutex)) == 0);
#endif
if( return_early == 1)
return NULL;
if( obj->forw != NULL)
free_ComplexSequence(obj->forw);
if( obj->rev != NULL)
free_ComplexSequence(obj->rev);
if( obj->sdb != NULL)
free_SequenceDB(obj->sdb);
if( obj->current != NULL)
free_Sequence(obj->current);
if( obj->cses != NULL)
free_ComplexSequenceEvalSet(obj->cses);
ckfree(obj);
return NULL;
}