diff options
Diffstat (limited to 'Public/Developer/System.Core/Sources')
| -rw-r--r-- | Public/Developer/System.Core/Sources/CRT0.cxx (renamed from Public/Developer/System.Core/Sources/LibEntrypoint.cxx) | 4 | ||||
| -rw-r--r-- | Public/Developer/System.Core/Sources/Heap.cxx | 45 | ||||
| -rw-r--r-- | Public/Developer/System.Core/Sources/New+Delete.cxx | 14 |
3 files changed, 6 insertions, 57 deletions
diff --git a/Public/Developer/System.Core/Sources/LibEntrypoint.cxx b/Public/Developer/System.Core/Sources/CRT0.cxx index b874ef55..a0235e68 100644 --- a/Public/Developer/System.Core/Sources/LibEntrypoint.cxx +++ b/Public/Developer/System.Core/Sources/CRT0.cxx @@ -6,8 +6,8 @@ /// @brief Inits the DLL. /// @return if it was succesful or not. -DWordType __DllMain(VoidType) { - kApplicationObject = HcGetInstanceObject(); +CA_EXTERN_C DWordType __DllMain(VoidType) { + kApplicationObject = HcGetAppObject(); CA_MUST_PASS(kApplicationObject); return 0; diff --git a/Public/Developer/System.Core/Sources/Heap.cxx b/Public/Developer/System.Core/Sources/Heap.cxx index 370693cc..fcd80a7f 100644 --- a/Public/Developer/System.Core/Sources/Heap.cxx +++ b/Public/Developer/System.Core/Sources/Heap.cxx @@ -11,7 +11,7 @@ /// @param sz size of object. /// @param flags flags. /// @return -CA_EXTERN_C PtrVoidType HcAllocateProcessHeap(ObjectPtr refObj, QWordType sz, +CA_EXTERN_C PtrVoidType HcAllocateProcessHeap(ObjectRef refObj, QWordType sz, DWordType flags) { CA_MUST_PASS(sz); CA_MUST_PASS(flags); @@ -22,7 +22,7 @@ CA_EXTERN_C PtrVoidType HcAllocateProcessHeap(ObjectPtr refObj, QWordType sz, /// @brief Free pointer from the user's heap. /// @param refObj Process object. /// @param ptr the pointer to free. -CA_EXTERN_C VoidType HcFreeProcessHeap(ObjectPtr refObj, PtrVoidType ptr) { +CA_EXTERN_C VoidType HcFreeProcessHeap(ObjectRef refObj, PtrVoidType ptr) { CA_MUST_PASS(ptr); CA_UNREFERENCED_PARAMETER(refObj->Invoke(refObj, kProcessCallFreePtr, ptr)); } @@ -31,7 +31,7 @@ CA_EXTERN_C VoidType HcFreeProcessHeap(ObjectPtr refObj, PtrVoidType ptr) { /// @param refObj Process object. /// @param ptr the pointer to find. /// @return the size. -CA_EXTERN_C QWordType HcProcessHeapSize(ObjectPtr refObj, PtrVoidType ptr) { +CA_EXTERN_C QWordType HcProcessHeapSize(ObjectRef refObj, PtrVoidType ptr) { CA_MUST_PASS(ptr); return refObj->Invoke(refObj, kProcessCallSizePtr, ptr); } @@ -40,44 +40,7 @@ CA_EXTERN_C QWordType HcProcessHeapSize(ObjectPtr refObj, PtrVoidType ptr) { /// @param refObj Process object. /// @param ptr the pointer to check. /// @return if it exists -CA_EXTERN_C BooleanType HcProcessHeapExists(ObjectPtr refObj, PtrVoidType ptr) { +CA_EXTERN_C BooleanType HcProcessHeapExists(ObjectRef refObj, PtrVoidType ptr) { CA_MUST_PASS(ptr); return refObj->Invoke(refObj, kProcessCallCheckPtr, ptr); } - -using namespace System; - -/// @brief Shared instance of the heap. -/// @return -HeapInterface* HeapInterface::Shared() noexcept { - static HeapInterface* heap = nullptr; - - if (!heap) { - heap = new HeapInterface(); - } - - return heap; -} - -HeapInterface::HeapInterface() { - CA_MUST_PASS(HcProcessHeapExists(kApplicationObject, (PtrVoidType)this)); -} - -HeapInterface::~HeapInterface() { delete this; } - -void HeapInterface::Delete(HeapRef me) noexcept { - CA_MUST_PASS(me); - HcFreeProcessHeap(kApplicationObject, me); -} - -SizeType HeapInterface::Size(HeapRef me) noexcept { - CA_MUST_PASS(me); - return HcProcessHeapSize(kApplicationObject, me); -} - -HeapRef HeapInterface::New(const SizeType& sz, const DWordType flags) { - SizeType _sz = sz; - if (!_sz) ++_sz; - - return HcAllocateProcessHeap(kApplicationObject, _sz, flags); -} diff --git a/Public/Developer/System.Core/Sources/New+Delete.cxx b/Public/Developer/System.Core/Sources/New+Delete.cxx index 98674a73..6e40aa06 100644 --- a/Public/Developer/System.Core/Sources/New+Delete.cxx +++ b/Public/Developer/System.Core/Sources/New+Delete.cxx @@ -5,20 +5,6 @@ ------------------------------------------- */ #include <System.Core/Headers/Heap.hxx> -#include <System.Core/Headers/Heap.hxx> - -#define kAllocationTypes 2 - -enum HcAllocationKind { - kStandardAllocation = 0xC, - kArrayAllocation = 0xD, -}; - -CA_EXTERN_C PtrVoidType HcAllocateProcessHeap(ObjectPtr refObj, QWordType sz, - DWordType flags); -CA_EXTERN_C BooleanType HcProcessHeapExists(ObjectPtr refObj, PtrVoidType ptr); -CA_EXTERN_C QWordType HcProcessHeapSize(ObjectPtr refObj, PtrVoidType ptr); -CA_EXTERN_C VoidType HcFreeProcessHeap(ObjectPtr refObj, PtrVoidType ptr); typedef SizeType size_t; |
