这篇教程C++ FREE_OBJ函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中FREE_OBJ函数的典型用法代码示例。如果您正苦于以下问题:C++ FREE_OBJ函数的具体用法?C++ FREE_OBJ怎么用?C++ FREE_OBJ使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了FREE_OBJ函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: VRT_DelDirectorvoidVRT_DelDirector(VCL_BACKEND *bp){ struct vcl *vcl; struct vcldir *vdir; VCL_BACKEND d; TAKE_OBJ_NOTNULL(d, bp, DIRECTOR_MAGIC); vdir = d->vdir; CHECK_OBJ_NOTNULL(vdir, VCLDIR_MAGIC); vcl = vdir->vcl; CHECK_OBJ_NOTNULL(vcl, VCL_MAGIC); Lck_Lock(&vcl_mtx); VTAILQ_REMOVE(&vcl->director_list, vdir, list); Lck_Unlock(&vcl_mtx); AZ(errno=pthread_rwlock_rdlock(&vcl->temp_rwl)); if (VCL_WARM(vcl)) VDI_Event(d, VCL_EVENT_COLD); AZ(errno=pthread_rwlock_unlock(&vcl->temp_rwl)); if(vdir->methods->destroy != NULL) vdir->methods->destroy(d); free(vdir->cli_name); FREE_OBJ(vdir->dir); FREE_OBJ(vdir);}
开发者ID:hermunn,项目名称:varnish-cache,代码行数:26,
示例2: vex_Freevoidvex_Free(struct vex **pvex){ if ((*pvex)->lhs != NULL) { if ((*pvex)->lhs->tags != NULL) vbit_destroy((*pvex)->lhs->tags); if ((*pvex)->lhs->prefix != NULL) free((*pvex)->lhs->prefix); FREE_OBJ((*pvex)->lhs); } if ((*pvex)->rhs != NULL) { if ((*pvex)->rhs->val_string) free((*pvex)->rhs->val_string); if ((*pvex)->rhs->val_regex) VRE_free(&(*pvex)->rhs->val_regex); FREE_OBJ((*pvex)->rhs); } if ((*pvex)->a != NULL) { vex_Free(&(*pvex)->a); AZ((*pvex)->a); } if ((*pvex)->b != NULL) { vex_Free(&(*pvex)->b); AZ((*pvex)->b); } FREE_OBJ(*pvex); *pvex = NULL;}
开发者ID:Matt8109,项目名称:Varnish-Cache,代码行数:29,
示例3: vmod_file_system__finiVCL_VOIDvmod_file_system__fini(struct vmod_fsdirector_file_system **fsp){ struct vmod_fsdirector_file_system *fs; void *res; // XXX It seems that the destructor is not called yet. // A little reminder then... abort(); fs = *fsp; *fsp = NULL; CHECK_OBJ_NOTNULL(fs, VMOD_FSDIRECTOR_MAGIC); AZ(pthread_cancel(fs->tp)); AZ(pthread_join(fs->tp, &res)); assert(res == PTHREAD_CANCELED); magic_close(fs->magic_cookie); free(fs->thread_name); free(fs->ws_name); free(fs->wrk->aws); FREE_OBJ(fs->wrk); FREE_OBJ(fs);}
开发者ID:Dridi,项目名称:libvmod-fsdirector,代码行数:25,
示例4: HSH_Cleanup/*---------------------------------------------------------------------*/voidHSH_Cleanup(struct worker *wrk){ if (wrk->nobjcore != NULL) { FREE_OBJ(wrk->nobjcore); wrk->stats->n_objectcore--; wrk->nobjcore = NULL; } if (wrk->nobjhead != NULL) { Lck_Delete(&wrk->nobjhead->mtx); FREE_OBJ(wrk->nobjhead); wrk->nobjhead = NULL; wrk->stats->n_objecthead--; } if (wrk->nwaitinglist != NULL) { FREE_OBJ(wrk->nwaitinglist); wrk->nwaitinglist = NULL; wrk->stats->n_waitinglist--; } if (wrk->nhashpriv != NULL) { /* XXX: If needed, add slinger method for this */ free(wrk->nhashpriv); wrk->nhashpriv = NULL; }}
开发者ID:wikimedia,项目名称:operations-debs-varnish4,代码行数:27,
示例5: CREATE_STRING_ERRchar *popen_fread(char *cmd, char *buf, int len){ char *str_tmp = NULL; char *p = NULL; FILE *fp = NULL; if((cmd == NULL) || (buf == NULL)) return NULL; //str_tmp = malloc(len); CREATE_STRING_ERR(str_tmp,len,MALLOC_ERR_RET(NULL)); if(str_tmp == NULL) { goto err; } printf_d("CMD: %s/n", cmd); fp = popen(cmd, "r"); if(fp) { memset(str_tmp, 0, len); if(fread(str_tmp, 1, len, fp) > 0) { if(strlen(str_tmp) < 1) { pclose(fp); goto err; } if(str_tmp[strlen(str_tmp)-1] == '/n') { str_tmp[strlen(str_tmp)-1] = '/0'; } else { str_tmp[strlen(str_tmp)] = '/0'; } p = trim(str_tmp); if(p == NULL) { buf[0] = 0; } else strcpy(buf, p); pclose(fp); } else { pclose(fp); goto err; } } else { goto err; } FREE_OBJ(str_tmp); return buf;err: FREE_OBJ(str_tmp); return NULL;}
开发者ID:tcdog001,项目名称:apv5sdk-v15,代码行数:59,
示例6: vdir_deletevoidvdir_delete(struct vdir **vdp){ struct vdir *vd; TAKE_OBJ_NOTNULL(vd, vdp, VDIR_MAGIC); free(vd->backend); free(vd->weight); AZ(pthread_rwlock_destroy(&vd->mtx)); free(vd->dir->vcl_name); FREE_OBJ(vd->dir); vbit_destroy(vd->vbm); FREE_OBJ(vd);}
开发者ID:maniacs-ops,项目名称:varnish-cache,代码行数:15,
示例7: TestCB_destroyvoidTestCB_destroy(TestCharBuf *self){ DECREF(self->wanted); DECREF(self->got); FREE_OBJ(self);}
开发者ID:robertkrimen,项目名称:Search-Kino03,代码行数:7,
示例8: ME_DeleteReObjectvoid ME_DeleteReObject(REOBJECT* reo){ if (reo->poleobj) IOleObject_Release(reo->poleobj); if (reo->pstg) IStorage_Release(reo->pstg); if (reo->polesite) IOleClientSite_Release(reo->polesite); FREE_OBJ(reo);}
开发者ID:Eltechs,项目名称:wine,代码行数:7,
示例9: Snapshot_destroyvoidSnapshot_destroy(Snapshot *self){ DECREF(self->entries); DECREF(self->filename); FREE_OBJ(self);}
开发者ID:robertkrimen,项目名称:Search-Kino03,代码行数:7,
示例10: FREE_OBJ // Free a memblock object. void Memblock::free(Memory& mem, Memblock* m) { if(m->ownData) m->data.free(mem); FREE_OBJ(mem, Memblock, m); }
开发者ID:JarrettBillingsley,项目名称:Croc,代码行数:8,
示例11: vfp_esi_endvfp_esi_end(struct sess *sp){ struct vsb *vsb; struct vef_priv *vef; ssize_t l; CHECK_OBJ_NOTNULL(sp, SESS_MAGIC); AN(sp->wrk->vep); vsb = VEP_Finish(sp); if (vsb != NULL) { l = VSB_len(vsb); assert(l > 0); /* XXX: This is a huge waste of storage... */ sp->obj->esidata = STV_alloc(sp, l); XXXAN(sp->obj->esidata); memcpy(sp->obj->esidata->ptr, VSB_data(vsb), l); sp->obj->esidata->len = l; VSB_delete(vsb); } if (sp->wrk->vgz_rx != NULL) VGZ_Destroy(&sp->wrk->vgz_rx); if (sp->wrk->vef_priv != NULL) { vef = sp->wrk->vef_priv; CHECK_OBJ_NOTNULL(vef, VEF_MAGIC); sp->wrk->vef_priv = NULL; VGZ_UpdateObj(vef->vgz, sp->obj); VGZ_Destroy(&vef->vgz); XXXAZ(vef->error); FREE_OBJ(vef); } return (0);}
开发者ID:midnightskinhead,项目名称:Varnish-Cache,代码行数:35,
示例12: vsmw_delsegstatic voidvsmw_delseg(struct vsmw *vsmw, struct vsmwseg *seg, int fixidx){ char *t = NULL; ssize_t s; int fd; CHECK_OBJ_NOTNULL(vsmw, VSMW_MAGIC); CHECK_OBJ_NOTNULL(seg, VSMWSEG_MAGIC); VTAILQ_REMOVE(&vsmw->segs, seg, list); REPLACE(seg->class, NULL); REPLACE(seg->id, NULL); FREE_OBJ(seg); if (fixidx) { vsmw_mkent(vsmw, vsmw->idx); REPLACE(t, VSB_data(vsmw->vsb)); AN(t); fd = openat(vsmw->vdirfd, t, O_WRONLY|O_CREAT|O_EXCL, vsmw->mode); assert(fd >= 0); vsmw_idx_head(vsmw, fd); VSB_clear(vsmw->vsb); VTAILQ_FOREACH(seg, &vsmw->segs, list) vsmw_fmt_index(vsmw, seg); AZ(VSB_finish(vsmw->vsb)); s = write(fd, VSB_data(vsmw->vsb), VSB_len(vsmw->vsb)); assert(s == VSB_len(vsmw->vsb)); AZ(close(fd)); AZ(renameat(vsmw->vdirfd, t, vsmw->vdirfd, vsmw->idx)); REPLACE(t, NULL); }}
开发者ID:hermunn,项目名称:varnish-cache,代码行数:34,
示例13: VRT_rel_vclvoidVRT_rel_vcl(VRT_CTX, struct vclref **refp){ struct vcl *vcl; struct vclref *ref; AN(refp); ref = *refp; *refp = NULL; CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC); CHECK_OBJ_NOTNULL(ref, VCLREF_MAGIC); vcl = ctx->vcl; CHECK_OBJ_NOTNULL(vcl, VCL_MAGIC); assert(vcl == ref->vcl); /* NB: A VCL may be released by a VMOD at any time, but it must happen * after a warmup and before the end of a cooldown. The release may or * may not happen while the same thread holds the temperature lock, so * instead we check that all references are gone in VCL_Nuke. */ Lck_Lock(&vcl_mtx); assert(!VTAILQ_EMPTY(&vcl->ref_list)); VTAILQ_REMOVE(&vcl->ref_list, ref, list); vcl->nrefs--; /* No garbage collection here, for the same reasons as in VCL_Rel. */ Lck_Unlock(&vcl_mtx); FREE_OBJ(ref);}
开发者ID:hermunn,项目名称:varnish-cache,代码行数:32,
示例14: ObjIterEndvoidObjIterEnd(struct objiter **oi){ CHECK_OBJ_NOTNULL((*oi), OBJITER_MAGIC); FREE_OBJ((*oi));}
开发者ID:gorillamania,项目名称:Varnish-Cache,代码行数:7,
示例15: vbp_wrk_poll_backendstatic void *vbp_wrk_poll_backend(void *priv){ struct vbp_target *vt; THR_SetName("backend poll"); CAST_OBJ_NOTNULL(vt, priv, VBP_TARGET_MAGIC); while (!vt->stop) { AN(vt->req); assert(vt->req_len > 0); if (!vt->disable) { vbp_start_poke(vt); vbp_poke(vt); vbp_has_poked(vt); } if (!vt->stop) VTIM_sleep(vt->probe.interval); } Lck_Delete(&vt->mtx); VTAILQ_REMOVE(&vbp_list, vt, list); VBT_Rel(&vt->tcp_pool); free(vt->req); FREE_OBJ(vt); return (NULL);}
开发者ID:BMDan,项目名称:Varnish-Cache,代码行数:29,
示例16: LockFact_destroyvoidLockFact_destroy(LockFactory *self){ DECREF(self->folder); DECREF(self->agent_id); FREE_OBJ(self);}
开发者ID:robertkrimen,项目名称:Search-Kino03,代码行数:7,
示例17: SeriesMatcher_destroyvoidSeriesMatcher_destroy(SeriesMatcher *self){ DECREF(self->matchers); DECREF(self->offsets); FREE_OBJ(self);}
开发者ID:robertkrimen,项目名称:Search-Kino03,代码行数:7,
示例18: VRT_Vmod_FinivoidVRT_Vmod_Fini(void **hdl){ struct vmod *v; ASSERT_CLI(); AN(*hdl); CAST_OBJ_NOTNULL(v, *hdl, VMOD_MAGIC); *hdl = NULL;#ifndef DONT_DLCLOSE_VMODS /* * atexit(3) handlers are not called during dlclose(3). We don't * normally use them, but we do when running GCOV. This option * enables us to do that. */ AZ(dlclose(v->hdl));#endif if (--v->ref != 0) return; free(v->nm); free(v->path); VTAILQ_REMOVE(&vmods, v, list); VSC_C_main->vmods--; FREE_OBJ(v);}
开发者ID:biddyweb,项目名称:Varnish-Cache,代码行数:27,
示例19: ME_DestroyStylestatic void ME_DestroyStyle(ME_Style *s) { if (s->hFont) { DeleteObject(s->hFont); s->hFont = NULL; } FREE_OBJ(s);}
开发者ID:howard5888,项目名称:wineT,代码行数:8,
示例20: VLU_DestroyvoidVLU_Destroy(struct vlu *l){ CHECK_OBJ_NOTNULL(l, LINEUP_MAGIC); free(l->buf); FREE_OBJ(l);}
开发者ID:KlausBrunner,项目名称:Varnish-Cache,代码行数:8,
示例21: vmod_mqueue__finiVCL_VOID vmod_mqueue__fini(struct vmod_msgsend_mqueue **qp){ AN(qp); CHECK_OBJ_NOTNULL(*qp, VMOD_MSGSEND_OBJ_MAGIC); queue_close(&(*qp)->queue); FREE_OBJ(*qp); *qp = NULL;}
开发者ID:julp,项目名称:banip,代码行数:8,
示例22: BAN_AbandonvoidBAN_Abandon(struct ban_proto *bp){ CHECK_OBJ_NOTNULL(bp, BAN_PROTO_MAGIC); VSB_delete(bp->vsb); FREE_OBJ(bp);}
开发者ID:preillyme,项目名称:Varnish-Cache,代码行数:8,
示例23: fifolog_write_destroyvoidfifolog_write_destroy(struct fifolog_writer *f){ free(f->obuf); free(f->ibuf); FREE_OBJ(f);}
开发者ID:JabirTech,项目名称:Source,代码行数:8,
示例24: vcc_delete_exprstatic voidvcc_delete_expr(struct expr *e){ if (e == NULL) return; CHECK_OBJ_NOTNULL(e, EXPR_MAGIC); VSB_delete(e->vsb); FREE_OBJ(e);}
开发者ID:BabyOnlineSG,项目名称:pkg-varnish,代码行数:9,
示例25: vdir_deletevoidvdir_delete(struct vdir **vdp){ struct vdir *vd; AN(vdp); vd = *vdp; *vdp = NULL; CHECK_OBJ_NOTNULL(vd, VDIR_MAGIC); free(vd->backend); free(vd->weight); AZ(pthread_mutex_destroy(&vd->mtx)); FREE_OBJ(vd->dir); vbit_destroy(vd->vbm); FREE_OBJ(vd);}
开发者ID:brianjarita,项目名称:Varnish-Cache,代码行数:18,
示例26: telnet_closestatic voidtelnet_close(void *priv){ struct telnet *tn; CAST_OBJ_NOTNULL(tn, priv, TELNET_MAGIC); (void)close(tn->fd); FREE_OBJ(tn);}
开发者ID:BabyOnlineSG,项目名称:pkg-varnish,代码行数:9,
示例27: SES_DeletePoolvoidSES_DeletePool(struct sesspool *pp){ CHECK_OBJ_NOTNULL(pp, SESSPOOL_MAGIC); MPL_Destroy(&pp->mpl_sess); MPL_Destroy(&pp->mpl_req); FREE_OBJ(pp);}
开发者ID:Open-Party,项目名称:Varnish-Cache,代码行数:9,
示例28: vtc_logclosevoidvtc_logclose(struct vtclog *vl){ CHECK_OBJ_NOTNULL(vl, VTCLOG_MAGIC); vsb_delete(vl->vsb); AZ(pthread_mutex_destroy(&vl->mtx)); FREE_OBJ(vl);}
开发者ID:leed25d,项目名称:ljVarnishPatch,代码行数:9,
示例29: HSH_DeleteObjHeadvoidHSH_DeleteObjHead(struct worker *wrk, struct objhead *oh){ AZ(oh->refcnt); assert(VTAILQ_EMPTY(&oh->objcs)); Lck_Delete(&oh->mtx); wrk->stats->n_objecthead--; FREE_OBJ(oh);}
开发者ID:wikimedia,项目名称:operations-debs-varnish4,代码行数:10,
注:本文中的FREE_OBJ函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ FREE_TEXT函数代码示例 C++ FREE_NULL_LIST函数代码示例 |