#include "allocate.h"
#include "error.h"
#include "internal.h"
#include "logging.h"
#include <string.h>
Go to the source code of this file.
|
| void * | kissat_malloc (kissat *solver, size_t bytes) |
| |
| void | kissat_free (kissat *solver, void *ptr, size_t bytes) |
| |
| char * | kissat_strdup (kissat *solver, const char *str) |
| |
| void | kissat_freestr (struct kissat *solver, char *str) |
| |
| void * | kissat_nalloc (kissat *solver, size_t n, size_t size) |
| |
| void * | kissat_calloc (kissat *solver, size_t n, size_t size) |
| |
| void | kissat_dealloc (kissat *solver, void *ptr, size_t n, size_t size) |
| |
| void * | kissat_realloc (kissat *solver, void *p, size_t old_bytes, size_t new_bytes) |
| |
| void * | kissat_nrealloc (kissat *solver, void *p, size_t o, size_t n, size_t size) |
| |
◆ LOGPREFIX
| #define LOGPREFIX "ALLOCATE" |
◆ kissat_calloc()
| void * kissat_calloc |
( |
kissat * | solver, |
|
|
size_t | n, |
|
|
size_t | size ) |
Definition at line 97 of file allocate.c.
97 {
98 void *res;
99 if (!n || !size)
100 return 0;
102 kissat_fatal (
"invalid 'kissat_calloc (..., %zu, %zu)' call", n, size);
104 LOG4 (
"calloc (%zu, %zu) = %p", n, size, res);
105 const size_t bytes = n *
size;
106 if (!res)
108 "%zu = %zu x %zu bytes",
109 bytes, n, size);
110 inc_bytes (
solver, bytes);
111 return res;
112}
void kissat_fatal(const char *fmt,...)
◆ kissat_dealloc()
| void kissat_dealloc |
( |
kissat * | solver, |
|
|
void * | ptr, |
|
|
size_t | n, |
|
|
size_t | size ) |
Definition at line 114 of file allocate.c.
114 {
115 if (!n || !size)
116 return;
118 kissat_fatal (
"invalid 'kissat_dealloc (..., %zu, %zu)' call", n, size);
119 const size_t bytes = n *
size;
121}
void kissat_free(kissat *solver, void *ptr, size_t bytes)
◆ kissat_free()
| void kissat_free |
( |
kissat * | solver, |
|
|
void * | ptr, |
|
|
size_t | bytes ) |
Definition at line 61 of file allocate.c.
61 {
62 if (ptr) {
63 LOG4 (
"free (%p[%zu])", ptr, bytes);
66 } else
68}
#define KISSAT_assert(ignore)
◆ kissat_freestr()
| void kissat_freestr |
( |
struct kissat * | solver, |
|
|
char * | str ) |
◆ kissat_malloc()
| void * kissat_malloc |
( |
kissat * | solver, |
|
|
size_t | bytes ) |
Definition at line 49 of file allocate.c.
49 {
50 void *res;
51 if (!bytes)
52 return 0;
54 LOG4 (
"malloc (%zu) = %p", bytes, res);
55 if (!res)
56 kissat_fatal (
"out-of-memory allocating %zu bytes", bytes);
58 return res;
59}
◆ kissat_nalloc()
| void * kissat_nalloc |
( |
kissat * | solver, |
|
|
size_t | n, |
|
|
size_t | size ) |
Definition at line 80 of file allocate.c.
80 {
81 void *res;
82 if (!n || !size)
83 return 0;
85 kissat_fatal (
"invalid 'kissat_nalloc (..., %zu, %zu)' call", n, size);
86 const size_t bytes = n *
size;
88 LOG4 (
"nalloc (%zu, %zu) = %p", n, size, res);
89 if (!res)
91 "%zu = %zu x %zu bytes",
92 bytes, n, size);
94 return res;
95}
◆ kissat_nrealloc()
| void * kissat_nrealloc |
( |
kissat * | solver, |
|
|
void * | p, |
|
|
size_t | o, |
|
|
size_t | n, |
|
|
size_t | size ) |
Definition at line 151 of file allocate.c.
152 {
153 if (!size) {
156 return 0;
157 }
159 if (max < o || max < n)
160 kissat_fatal (
"invalid 'kissat_nrealloc (..., %zu, %zu, %zu)' call", o,
161 n, size);
163}
void * kissat_realloc(kissat *solver, void *p, size_t old_bytes, size_t new_bytes)
◆ kissat_realloc()
| void * kissat_realloc |
( |
kissat * | solver, |
|
|
void * | p, |
|
|
size_t | old_bytes, |
|
|
size_t | new_bytes ) |
Definition at line 123 of file allocate.c.
124 {
125 if (old_bytes == new_bytes)
127 if (!new_bytes) {
129 return 0;
130 }
131 dec_bytes (
solver, old_bytes);
132#ifdef LOGGING
135 old_bytes, new_bytes);
136#endif
138#ifdef LOGGING
140 printf ("%p", res);
141 kissat_end_logging ();
142 }
143#endif
144 if (new_bytes && !res)
145 kissat_fatal (
"out-of-memory reallocating from %zu to %zu bytes",
146 old_bytes, new_bytes);
147 inc_bytes (
solver, new_bytes);
148 return res;
149}
◆ kissat_strdup()
| char * kissat_strdup |
( |
kissat * | solver, |
|
|
const char * | str ) |
Definition at line 70 of file allocate.c.
70 {
73}
void * kissat_malloc(kissat *solver, size_t bytes)