aboutsummaryrefslogtreecommitdiff
path: root/libpsn00b/libc/c++-support.cxx
diff options
context:
space:
mode:
authorJohn "Lameguy" Wilbert Villamor <lameguy64@gmail.com>2022-03-25 09:22:20 +0800
committerGitHub <noreply@github.com>2022-03-25 09:22:20 +0800
commit975e614b3c840e2f717adac1d1cb9cee4e5e561b (patch)
tree6584ce5b0dbe27a466c95c81fac61b0d90f627bd /libpsn00b/libc/c++-support.cxx
parent05d44488bd5587786f4bd0286fc0f555c79aa46a (diff)
parent45168ae43e29aa5930ee5a206475ae836078915f (diff)
downloadpsn00bsdk-975e614b3c840e2f717adac1d1cb9cee4e5e561b.tar.gz
Merge pull request #46 from spicyjpeg/psxmdec
Critical ldscript fixes, initial MDEC support and CI updates
Diffstat (limited to 'libpsn00b/libc/c++-support.cxx')
-rw-r--r--libpsn00b/libc/c++-support.cxx53
1 files changed, 30 insertions, 23 deletions
diff --git a/libpsn00b/libc/c++-support.cxx b/libpsn00b/libc/c++-support.cxx
index d169fdb..38354dd 100644
--- a/libpsn00b/libc/c++-support.cxx
+++ b/libpsn00b/libc/c++-support.cxx
@@ -1,39 +1,46 @@
-#include <assert.h>
+
#include <stdint.h>
#include <stdlib.h>
+#include <stdio.h>
-extern "C"
-
-void __cxa_pure_virtual(void) {
- /* Pure C++ virtual call; abort! */
- assert(false);
-}
+/* Default new/delete operators */
-void* operator new(size_t size) {
- return malloc(size);
+void *operator new(size_t size) noexcept {
+ return malloc(size);
}
-void* operator new[](size_t size) {
- return malloc(size);
+void *operator new[](size_t size) noexcept {
+ return malloc(size);
}
-void operator delete(void* ptr) {
- free(ptr);
+void operator delete(void *ptr) noexcept {
+ free(ptr);
}
-void operator delete[](void* ptr) {
- free(ptr);
+void operator delete[](void *ptr) noexcept {
+ free(ptr);
}
-/*-
- * <https://en.cppreference.com/w/cpp/memory/new/operator_delete>
+/*
+ * https://en.cppreference.com/w/cpp/memory/new/operator_delete
*
* Called if a user-defined replacement is provided, except that it's
* unspecified whether other overloads or this overload is called when deleting
- * objects of incomplete type and arrays of non-class and trivially-destructible
- * class types.
+ * objects of incomplete type and arrays of non-class and trivially
+ * destructible class types.
*
- * A memory allocator can use the given size to be more efficient */
-void operator delete(void* ptr, unsigned int) {
- free(ptr);
-} \ No newline at end of file
+ * A memory allocator can use the given size to be more efficient.
+ */
+void operator delete(void *ptr, size_t size) noexcept {
+ free(ptr);
+}
+
+/* Placement new operators */
+
+void *operator new(size_t size, void *ptr) noexcept {
+ return ptr;
+}
+
+void *operator new[](size_t size, void *ptr) noexcept {
+ return ptr;
+}