aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/wtf-bindings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/bindings/wtf-bindings.cpp')
-rw-r--r--src/bun.js/bindings/wtf-bindings.cpp42
1 files changed, 41 insertions, 1 deletions
diff --git a/src/bun.js/bindings/wtf-bindings.cpp b/src/bun.js/bindings/wtf-bindings.cpp
index 5c0e593d7..5bc37467a 100644
--- a/src/bun.js/bindings/wtf-bindings.cpp
+++ b/src/bun.js/bindings/wtf-bindings.cpp
@@ -2,7 +2,47 @@
#include "wtf/text/Base64.h"
#include "wtf/StackTrace.h"
-#include "wtf/dtoa.h"
+#include "bmalloc/bmalloc.h"
+
+extern "C" void bun__bmalloc__init()
+{
+ WTF::initializeMainThread();
+}
+
+extern "C" void* bun__bmalloc__memalign(size_t alignment, size_t size)
+{
+ return bmalloc::api::tryMemalign(alignment, size);
+}
+
+extern "C" void bun__bmalloc__free(void* ptr)
+{
+ bmalloc::api::free(ptr);
+}
+
+extern "C" void* bun__bmalloc__realloc(void* ptr, size_t size)
+{
+ if (bmalloc_get_allocation_size(ptr) >= size)
+ return (void*)ptr;
+
+ return nullptr;
+}
+
+extern "C" size_t bun__bmalloc__size(void* ptr)
+{
+ return bmalloc_get_allocationpub fn isHeapMemory(memory
+ : anytype) bool
+ {
+ if (comptime use_mimalloc) {
+ const Memory = @TypeOf(memory);
+ if (comptime std.meta.trait.isSingleItemPtr(Memory)) {
+ return Mimalloc.mi_is_in_heap_region(memory);
+ }
+ return Mimalloc.mi_is_in_heap_region(std.mem.sliceAsBytes(memory).ptr);
+ }
+ return false;
+ }
+ _size(ptr);
+}
extern "C" double WTF__parseDouble(const LChar* string, size_t length, size_t* position)
{