您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ ALLOC_GROW函数代码示例

51自学网 2021-06-01 19:34:43
  C++
这篇教程C++ ALLOC_GROW函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中ALLOC_GROW函数的典型用法代码示例。如果您正苦于以下问题:C++ ALLOC_GROW函数的具体用法?C++ ALLOC_GROW怎么用?C++ ALLOC_GROW使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了ALLOC_GROW函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: transport_fetch_refs

int transport_fetch_refs(struct transport *transport, struct ref *refs){	int rc;	int nr_heads = 0, nr_alloc = 0, nr_refs = 0;	struct ref **heads = NULL;	struct ref *rm;	for (rm = refs; rm; rm = rm->next) {		nr_refs++;		if (rm->peer_ref &&		    !is_null_sha1(rm->old_sha1) &&		    !hashcmp(rm->peer_ref->old_sha1, rm->old_sha1))			continue;		ALLOC_GROW(heads, nr_heads + 1, nr_alloc);		heads[nr_heads++] = rm;	}	if (!nr_heads) {		/*		 * When deepening of a shallow repository is requested,		 * then local and remote refs are likely to still be equal.		 * Just feed them all to the fetch method in that case.		 * This condition shouldn't be met in a non-deepening fetch		 * (see builtin-fetch.c:quickfetch()).		 */		heads = xmalloc(nr_refs * sizeof(*heads));		for (rm = refs; rm; rm = rm->next)			heads[nr_heads++] = rm;	}	rc = transport->fetch(transport, nr_heads, heads);	free(heads);	return rc;}
开发者ID:cee1,项目名称:cgit-hack,代码行数:35,


示例2: add_exclude

void add_exclude(const char *string, const char *base,		 int baselen, struct exclude_list *el, int srcpos){	struct exclude *x;	int patternlen;	int flags;	int nowildcardlen;	parse_exclude_pattern(&string, &patternlen, &flags, &nowildcardlen);	if (flags & EXC_FLAG_MUSTBEDIR) {		char *s;		x = xmalloc(sizeof(*x) + patternlen + 1);		s = (char *)(x+1);		memcpy(s, string, patternlen);		s[patternlen] = '/0';		x->pattern = s;	} else {		x = xmalloc(sizeof(*x));		x->pattern = string;	}	x->patternlen = patternlen;	x->nowildcardlen = nowildcardlen;	x->base = base;	x->baselen = baselen;	x->flags = flags;	x->srcpos = srcpos;	ALLOC_GROW(el->excludes, el->nr + 1, el->alloc);	el->excludes[el->nr++] = x;	x->el = el;}
开发者ID:13leaf,项目名称:git,代码行数:30,


示例3: read_loose_refs

static int read_loose_refs(struct strbuf *path, int name_offset,		struct ref **tail){	DIR *dir = opendir(path->buf);	struct dirent *de;	struct {		char **entries;		int nr, alloc;	} list;	int i, pathlen;	if (!dir)		return -1;	memset (&list, 0, sizeof(list));	while ((de = readdir(dir))) {		if (is_dot_or_dotdot(de->d_name))			continue;		ALLOC_GROW(list.entries, list.nr + 1, list.alloc);		list.entries[list.nr++] = xstrdup(de->d_name);	}	closedir(dir);	/* sort the list */	qsort(list.entries, list.nr, sizeof(char *), str_cmp);	pathlen = path->len;	strbuf_addch(path, '/');	for (i = 0; i < list.nr; i++, strbuf_setlen(path, pathlen + 1)) {		strbuf_addstr(path, list.entries[i]);		if (read_loose_refs(path, name_offset, tail)) {			int fd = open(path->buf, O_RDONLY);			char buffer[40];			struct ref *next;			if (fd < 0)				continue;			next = alloc_ref(path->buf + name_offset);			if (read_in_full(fd, buffer, 40) != 40 ||					get_oid_hex(buffer, &next->old_oid)) {				close(fd);				free(next);				continue;			}			close(fd);			(*tail)->next = next;			*tail = next;		}	}	strbuf_setlen(path, pathlen);	for (i = 0; i < list.nr; i++)		free(list.entries[i]);	free(list.entries);	return 0;}
开发者ID:Carina26,项目名称:git,代码行数:60,


示例4: populate_opts_cb

static int populate_opts_cb(const char *key, const char *value, void *data){	struct replay_opts *opts = data;	int error_flag = 1;	if (!value)		error_flag = 0;	else if (!strcmp(key, "options.no-commit"))		opts->no_commit = git_config_bool_or_int(key, value, &error_flag);	else if (!strcmp(key, "options.edit"))		opts->edit = git_config_bool_or_int(key, value, &error_flag);	else if (!strcmp(key, "options.signoff"))		opts->signoff = git_config_bool_or_int(key, value, &error_flag);	else if (!strcmp(key, "options.record-origin"))		opts->record_origin = git_config_bool_or_int(key, value, &error_flag);	else if (!strcmp(key, "options.allow-ff"))		opts->allow_ff = git_config_bool_or_int(key, value, &error_flag);	else if (!strcmp(key, "options.mainline"))		opts->mainline = git_config_int(key, value);	else if (!strcmp(key, "options.strategy"))		git_config_string(&opts->strategy, key, value);	else if (!strcmp(key, "options.strategy-option")) {		ALLOC_GROW(opts->xopts, opts->xopts_nr + 1, opts->xopts_alloc);		opts->xopts[opts->xopts_nr++] = xstrdup(value);	} else		return error(_("Invalid key: %s"), key);	if (!error_flag)		return error(_("Invalid value for %s: %s"), key, value);	return 0;}
开发者ID:7sOddities,项目名称:git,代码行数:32,


示例5: ALLOC_GROW

static struct dir_entry *dir_add_name(struct dir_struct *dir, const char *pathname, int len){	if (cache_name_exists(pathname, len, ignore_case))		return NULL;	ALLOC_GROW(dir->entries, dir->nr+1, dir->alloc);	return dir->entries[dir->nr++] = dir_entry_new(pathname, len);}
开发者ID:CCorreia,项目名称:git,代码行数:8,


示例6: strbuf_grow

void strbuf_grow(struct strbuf *sb, size_t extra){	if (sb->len + extra + 1 <= sb->len)		die("you want to use way too much memory");	if (!sb->alloc)		sb->buf = NULL;	ALLOC_GROW(sb->buf, sb->len + extra + 1, sb->alloc);}
开发者ID:Jatinpurohit,项目名称:git,代码行数:8,


示例7: add_to_ref_list

static void add_to_ref_list(const unsigned char *sha1, const char *name,		struct ref_list *list){	ALLOC_GROW(list->list, list->nr + 1, list->alloc);	hashcpy(list->list[list->nr].sha1, sha1);	list->list[list->nr].name = xstrdup(name);	list->nr++;}
开发者ID:86joca,项目名称:git,代码行数:8,


示例8: ALLOC_GROW

struct string_list_item *string_list_append(struct string_list *list, const char *string){	ALLOC_GROW(list->items, list->nr + 1, list->alloc);	list->items[list->nr].string =		list->strdup_strings ? xstrdup(string) : (char *)string;	list->items[list->nr].util = NULL;	return list->items + list->nr++;}
开发者ID:AndyStricker,项目名称:git,代码行数:8,


示例9: set_dirpath

void set_dirpath(int wd, const char *path){	int old_alloc = wd_alloc;	ALLOC_GROW(wdpaths, wd+1, wd_alloc);	if (old_alloc < wd_alloc)		memset(wdpaths+old_alloc, 0,		       (wd_alloc-old_alloc)*sizeof(const char *));	wdpaths[wd] = strdup(path);}
开发者ID:trast,项目名称:watch,代码行数:9,


示例10: add_rewritten

void add_rewritten(struct rewritten *list, unsigned char *from, unsigned char *to){	struct rewritten_item *item;	ALLOC_GROW(list->items, list->nr + 1, list->alloc);	item = &list->items[list->nr];	hashcpy(item->from, from);	hashcpy(item->to, to);	list->nr++;}
开发者ID:felipec,项目名称:git,代码行数:9,


示例11: add_header

static void add_header(const char *value){	int len = strlen(value);	while (len && value[len - 1] == '/n')		len--;	if (!strncasecmp(value, "to: ", 4)) {		ALLOC_GROW(extra_to, extra_to_nr + 1, extra_to_alloc);		extra_to[extra_to_nr++] = xstrndup(value + 4, len - 4);		return;	}	if (!strncasecmp(value, "cc: ", 4)) {		ALLOC_GROW(extra_cc, extra_cc_nr + 1, extra_cc_alloc);		extra_cc[extra_cc_nr++] = xstrndup(value + 4, len - 4);		return;	}	ALLOC_GROW(extra_hdr, extra_hdr_nr + 1, extra_hdr_alloc);	extra_hdr[extra_hdr_nr++] = xstrndup(value, len);}
开发者ID:samv,项目名称:git,代码行数:18,


示例12: strlen

static char *args_to_str(const char **argv){	char *buf = NULL;	unsigned long len, space = 0, nr = 0;	for (; *argv; argv++) {		len = strlen(*argv);		ALLOC_GROW(buf, nr + 1 + len, space);		if (nr)			buf[nr++] = ' ';		memcpy(buf + nr, *argv, len);		nr += len;	}	ALLOC_GROW(buf, nr + 1, space);	buf[nr] = '/0';	return buf;}
开发者ID:vmiklos,项目名称:gsoc2008,代码行数:18,


示例13: FLEX_ALLOC_STR

static struct ref_update *add_update(struct ref_transaction *transaction,				     const char *refname){	struct ref_update *update;	FLEX_ALLOC_STR(update, refname, refname);	ALLOC_GROW(transaction->updates, transaction->nr + 1, transaction->alloc);	transaction->updates[transaction->nr++] = update;	return update;}
开发者ID:136357477,项目名称:git,代码行数:9,


示例14: strbuf_grow

void strbuf_grow(struct strbuf *sb, size_t extra){	int new_buf = !sb->alloc;	if (new_buf)		sb->buf = NULL;	ALLOC_GROW(sb->buf, sb->len + extra + 1, sb->alloc);	if (new_buf)		sb->buf[0] = '/0';}
开发者ID:dilraj45,项目名称:pegit,代码行数:9,


示例15: add_cmdname

void add_cmdname(struct cmdnames *cmds, const char *name, int len){	struct cmdname *ent;	FLEX_ALLOC_MEM(ent, name, name, len);	ent->len = len;	ALLOC_GROW(cmds->names, cmds->cnt + 1, cmds->alloc);	cmds->names[cmds->cnt++] = ent;}
开发者ID:cEngineGit,项目名称:git,代码行数:9,


示例16: strbuf_grow

void strbuf_grow(struct strbuf *sb, size_t extra){	if (unsigned_add_overflows(extra, 1) ||	    unsigned_add_overflows(sb->len, extra + 1))		die("you want to use way too much memory");	if (!sb->alloc)		sb->buf = NULL;	ALLOC_GROW(sb->buf, sb->len + extra + 1, sb->alloc);}
开发者ID:MikeBrWade,项目名称:git,代码行数:9,


示例17: run_hook

int run_hook(const char *index_file, const char *name, ...){	struct child_process hook;	const char **argv = NULL, *env[2];	char index[PATH_MAX];	va_list args;	int ret;	size_t i = 0, alloc = 0;	if (access(perf_path("hooks/%s", name), X_OK) < 0)		return 0;	va_start(args, name);	ALLOC_GROW(argv, i + 1, alloc);	argv[i++] = perf_path("hooks/%s", name);	while (argv[i-1]) {		ALLOC_GROW(argv, i + 1, alloc);		argv[i++] = va_arg(args, const char *);	}	va_end(args);	memset(&hook, 0, sizeof(hook));	hook.argv = argv;	hook.no_stdin = 1;	hook.stdout_to_stderr = 1;	if (index_file) {		snprintf(index, sizeof(index), "PERF_INDEX_FILE=%s", index_file);		env[0] = index;		env[1] = NULL;		hook.env = env;	}	ret = start_command(&hook);	free(argv);	if (ret) {		warning("Could not spawn %s", argv[0]);		return ret;	}	ret = finish_command(&hook);	if (ret == -ERR_RUN_COMMAND_WAITPID_SIGNAL)		warning("%s exited due to uncaught signal", argv[0]);	return ret;}
开发者ID:AppEngine,项目名称:linux-2.6,代码行数:44,


示例18: option_parse_x

static int option_parse_x(const struct option *opt,			  const char *arg, int unset){	if (unset)		return 0;	ALLOC_GROW(xopts, xopts_nr + 1, xopts_alloc);	xopts[xopts_nr++] = xstrdup(arg);	return 0;}
开发者ID:carey94tt,项目名称:git,代码行数:10,


示例19: hkl_tests_grow

void hkl_tests_grow(struct hkl_tests * tests, size_t extra){	if (tests->len + extra <= tests->len){		fprintf(stderr, "you want to use way too much memory");		exit(128);	}	if (!tests->alloc)		tests->tests = NULL;	ALLOC_GROW(tests->tests, tests->len + extra, tests->alloc);}
开发者ID:dchabot,项目名称:hkl,代码行数:10,


示例20: add_cmd_list

static void add_cmd_list(struct cmdnames *cmds, struct cmdnames *old){	int i;	ALLOC_GROW(cmds->names, cmds->cnt + old->cnt, cmds->alloc);	for (i = 0; i < old->cnt; i++)		cmds->names[cmds->cnt++] = old->names[i];	FREE_AND_NULL(old->names);	old->cnt = 0;}
开发者ID:cEngineGit,项目名称:git,代码行数:10,


示例21: add_commit_info

static void add_commit_info(struct commit *commit, void *util,		struct commit_info_lifo *lifo){	struct commit_info *info;	ALLOC_GROW(lifo->items, lifo->nr + 1, lifo->alloc);	info = lifo->items + lifo->nr;	info->commit = commit;	info->util = util;	lifo->nr++;}
开发者ID:basilgor,项目名称:git,代码行数:10,


示例22: ALLOC_GROW

struct string_list_item *string_list_append_nodup(struct string_list *list,						  char *string){	struct string_list_item *retval;	ALLOC_GROW(list->items, list->nr + 1, list->alloc);	retval = &list->items[list->nr++];	retval->string = string;	retval->util = NULL;	return retval;}
开发者ID:120011676,项目名称:git,代码行数:10,


示例23: fit_variant

static void fit_variant(struct rerere_dir *rr_dir, int variant){	variant++;	ALLOC_GROW(rr_dir->status, variant, rr_dir->status_alloc);	if (rr_dir->status_nr < variant) {		memset(rr_dir->status + rr_dir->status_nr,		       '/0', variant - rr_dir->status_nr);		rr_dir->status_nr = variant;	}}
开发者ID:foggg7777,项目名称:git,代码行数:10,


示例24: ALLOC_GROW

struct attr_check_item *attr_check_append(struct attr_check *check,					  const struct git_attr *attr){	struct attr_check_item *item;	ALLOC_GROW(check->items, check->nr + 1, check->alloc);	item = &check->items[check->nr++];	item->attr = attr;	return item;}
开发者ID:basilgor,项目名称:git,代码行数:10,


示例25: dir_add_name

static struct dir_entry *dir_add_name(struct dir_struct *dir, const char *pathname,              int len, struct index_state *index){    if (index_name_exists(index, pathname, len, 0))        return NULL;    ALLOC_GROW(dir->entries, dir->nr+1, dir->alloc);    return dir->entries[dir->nr++] = dir_entry_new(pathname, len);}
开发者ID:AlanForeverAi,项目名称:seafile,代码行数:10,


示例26: git_format_config

static int git_format_config(const char *var, const char *value, void *cb){	if (!strcmp(var, "format.headers")) {		if (!value)			die("format.headers without value");		add_header(value);		return 0;	}	if (!strcmp(var, "format.suffix"))		return git_config_string(&fmt_patch_suffix, var, value);	if (!strcmp(var, "format.cc")) {		if (!value)			return config_error_nonbool(var);		ALLOC_GROW(extra_cc, extra_cc_nr + 1, extra_cc_alloc);		extra_cc[extra_cc_nr++] = xstrdup(value);		return 0;	}	if (!strcmp(var, "diff.color") || !strcmp(var, "color.diff")) {		return 0;	}	if (!strcmp(var, "format.numbered")) {		if (value && !strcasecmp(value, "auto")) {			auto_number = 1;			return 0;		}		numbered = git_config_bool(var, value);		auto_number = auto_number && numbered;		return 0;	}	if (!strcmp(var, "format.attach")) {		if (value && *value)			default_attach = xstrdup(value);		else			default_attach = xstrdup(git_version_string);		return 0;	}	if (!strcmp(var, "format.thread")) {		if (value && !strcasecmp(value, "deep")) {			thread = THREAD_DEEP;			return 0;		}		if (value && !strcasecmp(value, "shallow")) {			thread = THREAD_SHALLOW;			return 0;		}		thread = git_config_bool(var, value) && THREAD_SHALLOW;		return 0;	}	if (!strcmp(var, "format.signoff")) {		do_signoff = git_config_bool(var, value);		return 0;	}	return git_log_config(var, value, cb);}
开发者ID:samv,项目名称:git,代码行数:55,


示例27: git_atexit

int git_atexit(void (*handler)(void)){	ALLOC_GROW(git_atexit_hdlrs.handlers, git_atexit_hdlrs.nr + 1, git_atexit_hdlrs.alloc);	git_atexit_hdlrs.handlers[git_atexit_hdlrs.nr++] = handler;	if (!git_atexit_installed) {		if (atexit(&git_atexit_dispatch))			return -1;		git_atexit_installed = 1;	}	return 0;}
开发者ID:1742314348,项目名称:git,代码行数:11,


示例28: check_vector_add

static void check_vector_add(struct attr_check *c){	vector_lock();	ALLOC_GROW(check_vector.checks,		   check_vector.nr + 1,		   check_vector.alloc);	check_vector.checks[check_vector.nr++] = c;	vector_unlock();}
开发者ID:basilgor,项目名称:git,代码行数:11,


示例29: add_cmdname

void add_cmdname(struct cmdnames *cmds, const char *name, size_t len){	struct cmdname *ent = malloc(sizeof(*ent) + len + 1);	ent->len = len;	memcpy(ent->name, name, len);	ent->name[len] = 0;	ALLOC_GROW(cmds->names, cmds->cnt + 1, cmds->alloc);	cmds->names[cmds->cnt++] = ent;}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:11,



注:本文中的ALLOC_GROW函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ ALLOC_HASHTABLE函数代码示例
C++ ALLOC_ARRAY函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。