about summary refs log tree commit diff stats
path: root/tree-sitter-yts/src/tree_sitter/alloc.h
diff options
context:
space:
mode:
Diffstat (limited to 'tree-sitter-yts/src/tree_sitter/alloc.h')
-rw-r--r--tree-sitter-yts/src/tree_sitter/alloc.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/tree-sitter-yts/src/tree_sitter/alloc.h b/tree-sitter-yts/src/tree_sitter/alloc.h
new file mode 100644
index 0000000..e5e685d
--- /dev/null
+++ b/tree-sitter-yts/src/tree_sitter/alloc.h
@@ -0,0 +1,66 @@
+/*
+ * yt - A fully featured command line YouTube client
+ *
+ * Copyright (C) 2024 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ * This file is part of Yt.
+ *
+ * You should have received a copy of the License along with this program.
+ * If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+ */
+
+#ifndef TREE_SITTER_ALLOC_H_
+#define TREE_SITTER_ALLOC_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+// Allow clients to override allocation functions
+#ifdef TREE_SITTER_REUSE_ALLOCATOR
+
+extern void *(*ts_current_malloc)(size_t size);
+extern void *(*ts_current_calloc)(size_t count, size_t size);
+extern void *(*ts_current_realloc)(void *ptr, size_t size);
+extern void (*ts_current_free)(void *ptr);
+
+#ifndef ts_malloc
+#define ts_malloc  ts_current_malloc
+#endif
+#ifndef ts_calloc
+#define ts_calloc  ts_current_calloc
+#endif
+#ifndef ts_realloc
+#define ts_realloc ts_current_realloc
+#endif
+#ifndef ts_free
+#define ts_free    ts_current_free
+#endif
+
+#else
+
+#ifndef ts_malloc
+#define ts_malloc  malloc
+#endif
+#ifndef ts_calloc
+#define ts_calloc  calloc
+#endif
+#ifndef ts_realloc
+#define ts_realloc realloc
+#endif
+#ifndef ts_free
+#define ts_free    free
+#endif
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // TREE_SITTER_ALLOC_H_