本文整理汇总了C++中ckfree函数的典型用法代码示例。如果您正苦于以下问题:C++ ckfree函数的具体用法?C++ ckfree怎么用?C++ ckfree使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ckfree函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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;
}
开发者ID:afmayer,项目名称:tcl-tk,代码行数:43,代码来源:ttkScroll.c
示例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;
}
开发者ID:ghoest,项目名称:kitgen,代码行数:22,代码来源:kitInit.c
示例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;
}
开发者ID:CTSRD-TESLA,项目名称:freebsd,代码行数:22,代码来源:redir.c
示例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);
}
}
开发者ID:lmiadowicz,项目名称:tcl,代码行数:22,代码来源:tclPreserve.c
示例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);
}
}
开发者ID:dezelin,项目名称:kBuild,代码行数:39,代码来源:init.c
示例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;
}
开发者ID:flightaware,项目名称:scotty,代码行数:22,代码来源:tnmUtil.c
示例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;
}
开发者ID:mrmckain,项目名称:RefTrans,代码行数:39,代码来源:gene.c
示例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);
}
}
开发者ID:behollis,项目名称:brlcad-svn-rev65072-gsoc2015,代码行数:39,代码来源:tclPreserve.c
示例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;
}
开发者ID:Backspace7,项目名称:minix,代码行数:22,代码来源:redir.c
示例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;
}
开发者ID:qwattash,项目名称:cheribsd,代码行数:22,代码来源:alias.c
示例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;
}
开发者ID:mrmckain,项目名称:RefTrans,代码行数:46,代码来源:basematrix.c
示例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;
}
开发者ID:sonyandy,项目名称:Tcl-DBF,代码行数:38,代码来源:tcldbf.c
示例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);
}
}
开发者ID:gahr,项目名称:poudriere,代码行数:38,代码来源:expand.c
示例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);
}
开发者ID:ArchAssault-Project,项目名称:ivy-c,代码行数:38,代码来源:ivytcl.c
示例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;
}
开发者ID:PlantandFoodResearch,项目名称:wise2,代码行数:49,代码来源:cdnadb.c
示例16: free_GeneStats
/* Function: free_GeneStats(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 [GeneStats *]
*
* Return [UNKN ] Undocumented return value [GeneStats *]
*
*/
GeneStats * free_GeneStats(GeneStats * obj)
{
int return_early = 0;
if( obj == NULL) {
warn("Attempting to free a NULL pointer to a GeneStats 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->splice5 != NULL)
free_SeqAlign(obj->splice5);
if( obj->splice3 != NULL)
free_SeqAlign(obj->splice3);
if( obj->intron != NULL)
free_RandomModelDNA(obj->intron);
if( obj->polyp != NULL)
free_RandomModelDNA(obj->polyp);
if( obj->rnd != NULL)
free_RandomModelDNA(obj->rnd);
ckfree(obj);
return NULL;
}
开发者ID:PlantandFoodResearch,项目名称:wise2,代码行数:49,代码来源:genestats.c
示例17: reset
void
reset() {
/* from eval.c: */
{
evalskip = 0;
loopnest = 0;
funcnest = 0;
}
/* from input.c: */
{
if (exception != EXSHELLPROC)
parsenleft = 0; /* clear input buffer */
popallfiles();
}
/* from parser.c: */
{
tokpushback = 0;
}
/* from redir.c: */
{
while (redirlist)
popredir();
}
/* from output.c: */
{
out1 = &output;
out2 = &errout;
if (memout.buf != NULL) {
ckfree(memout.buf);
memout.buf = NULL;
}
}
}
开发者ID:JamesLinus,项目名称:vsta,代码行数:38,代码来源:init.c
示例18: InterpDeleteHandler
/*++
InterpDeleteHandler
Frees the state structure for an interpreter that is being deleted.
Arguments:
clientData - Pointer to a "ExtState" structure.
interp - Current interpreter.
Return Value:
None.
--*/
static void
InterpDeleteHandler(
ClientData clientData,
Tcl_Interp *interp
)
{
ExtState *statePtr = (ExtState *)clientData;
StateList *stateListPtr;
if (statePtr == NULL) {
return;
}
Tcl_MutexLock(&stateMutex);
for (stateListPtr = stateListHead; stateListPtr != NULL; stateListPtr = stateListPtr->next) {
if (statePtr == stateListPtr->state) {
// Remove the interpreter's state from the list.
if (stateListPtr->prev == NULL) {
stateListHead = stateListPtr->next;
if (stateListPtr->next != NULL) {
stateListHead->prev = NULL;
}
} else if (stateListPtr->next == NULL) {
stateListPtr->prev->next = NULL;
} else {
stateListPtr->prev->next = stateListPtr->next;
stateListPtr->next->prev = stateListPtr->prev;
}
ckfree((char *)stateListPtr);
break;
}
}
Tcl_MutexUnlock(&stateMutex);
FreeState(statePtr);
}
开发者ID:MalaGaM,项目名称:nxscripts,代码行数:53,代码来源:alcoExt.c
示例19: act_makeemptyfield
static void act_makeemptyfield (pos_node ps1, pos_node ps2)
{ value v1 = calc_affix_value (ps1, lower_side);
value v2 = calc_affix_value (ps2, lower_side);
/* Insert code here */
if ((v1 -> tag == integer_value) && (v2 -> tag == integer_value))
{ char *save_field = field; /* Ugh */
int save_width = width;
int save_height = height;
int ix;
width = v1 -> u.inum;
height = v2 -> u.inum;
field = (char *) ckcalloc (width*height, sizeof (char));
for (ix = 0; ix < width * height; ix++) field[ix] = 0;
callq ();
ckfree (field);
height = save_height;
width = save_width;
field = save_field;
};
/* End of insertion */
rfre_value (v1);
rfre_value (v2);
};
开发者ID:tjordanchat,项目名称:eag,代码行数:23,代码来源:alib.c
示例20: dlclose
int
dlclose(
void *handle
) {
LibraryList *ptr, *prevPtr;
ptr = libraryList; prevPtr = NULL;
while (ptr != NULL) {
if (ptr->handle == (HINSTANCE) handle) {
FreeLibrary((HINSTANCE) handle);
if (prevPtr) {
prevPtr->nextPtr = ptr->nextPtr;
} else {
libraryList = ptr->nextPtr;
}
ckfree((char *) ptr);
return 0;
}
prevPtr = ptr;
ptr = ptr->nextPtr;
}
return -1;
}
开发者ID:aosm,项目名称:tcl,代码行数:23,代码来源:tclLoadWin.c
注:本文中的ckfree函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论