| 11 | #include "scratch.h" |
| 12 | |
| 13 | static secp256k1_scratch* secp256k1_scratch_create(const secp256k1_callback* error_callback, size_t size) { |
| 14 | const size_t base_alloc = ROUND_TO_ALIGN(sizeof(secp256k1_scratch)); |
| 15 | void *alloc = checked_malloc(error_callback, base_alloc + size); |
| 16 | secp256k1_scratch* ret = (secp256k1_scratch *)alloc; |
| 17 | if (ret != NULL) { |
| 18 | memset(ret, 0, sizeof(*ret)); |
| 19 | memcpy(ret->magic, "scratch", 8); |
| 20 | ret->data = (void *) ((char *) alloc + base_alloc); |
| 21 | ret->max_size = size; |
| 22 | } |
| 23 | return ret; |
| 24 | } |
| 25 | |
| 26 | static void secp256k1_scratch_destroy(const secp256k1_callback* error_callback, secp256k1_scratch* scratch) { |
| 27 | if (scratch != NULL) { |