MCPcopy Create free account
hub / github.com/crossuo/crossuo / backtrace_vector_grow

Function backtrace_vector_grow

external/tracy/libbacktrace/alloc.cpp:84–121  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

82/* Grow VEC by SIZE bytes. */
83
84void *
85backtrace_vector_grow (struct backtrace_state *state ATTRIBUTE_UNUSED,
86 size_t size, backtrace_error_callback error_callback,
87 void *data, struct backtrace_vector *vec)
88{
89 void *ret;
90
91 if (size > vec->alc)
92 {
93 size_t alc;
94 void *base;
95
96 if (vec->size == 0)
97 alc = 32 * size;
98 else if (vec->size >= 4096)
99 alc = vec->size + 4096;
100 else
101 alc = 2 * vec->size;
102
103 if (alc < vec->size + size)
104 alc = vec->size + size;
105
106 base = rprealloc (vec->base, alc);
107 if (base == NULL)
108 {
109 error_callback (data, "realloc", errno);
110 return NULL;
111 }
112
113 vec->base = base;
114 vec->alc = alc - vec->size;
115 }
116
117 ret = (char *) vec->base + vec->size;
118 vec->size += size;
119 vec->alc -= size;
120 return ret;
121}
122
123/* Finish the current allocation on VEC. */
124

Callers 5

add_unit_addrFunction · 0.85
build_address_mapFunction · 0.85
add_lineFunction · 0.85
read_line_infoFunction · 0.85
add_function_rangeFunction · 0.85

Calls 2

rpreallocFunction · 0.85
error_callbackFunction · 0.85

Tested by

no test coverage detected