Blender  V3.3
Util.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2001-2002 NaN Holding BV. All rights reserved. */
3 
4 #include <stdlib.h>
5 
6 #include <stdarg.h>
7 #include <stdio.h>
8 #include <string.h>
9 
10 #include "MEM_guardedalloc.h"
11 
12 #include "Util.h"
13 
14 void *memdbl(void *mem, int *size_pr, int item_size)
15 {
16  int cur_size = *size_pr;
17  int new_size = cur_size ? (cur_size * 2) : 1;
18  void *nmem = MEM_mallocN(new_size * item_size, "memdbl");
19 
20  memcpy(nmem, mem, cur_size * item_size);
21  MEM_freeN(mem);
22 
23  *size_pr = new_size;
24  return nmem;
25 }
26 
27 char *string_dup(char *str)
28 {
29  int len = strlen(str);
30  char *nstr = MEM_mallocN(len + 1, "string_dup");
31 
32  memcpy(nstr, str, len + 1);
33 
34  return nstr;
35 }
36 
37 void fatal(char *fmt, ...)
38 {
39  va_list ap;
40 
41  fprintf(stderr, "FATAL: ");
42  va_start(ap, fmt);
43  vfprintf(stderr, fmt, ap);
44  va_end(ap);
45  fprintf(stderr, "\n");
46 
47  exit(1);
48 }
Read Guarded memory(de)allocation.
void * memdbl(void *mem, int *size_pr, int item_size)
Definition: Util.c:14
void fatal(char *fmt,...)
Definition: Util.c:37
char * string_dup(char *str)
Definition: Util.c:27
int len
Definition: draw_manager.c:108
#define str(s)
void(* MEM_freeN)(void *vmemh)
Definition: mallocn.c:27
void *(* MEM_mallocN)(size_t len, const char *str)
Definition: mallocn.c:33