WIP: sdk, bug fixes, os support regression fix

This commit is contained in:
2022-08-23 21:36:13 +08:00
parent 751a442554
commit eaae297b49
25 changed files with 813 additions and 455 deletions
+3 -2
View File
@@ -1,9 +1,10 @@
#include "../server/libaquery.h"
typedef void (*dealloctor_t) (void*);
extern void* Aalloc(size_t sz);
extern int Afree(void * mem);
extern size_t register_memory(void* ptr, void(dealloc)(void*));
extern void Afree(void * mem);
extern size_t register_memory(void* ptr, dealloctor_t deallocator);
struct Session{
struct Statistic{
+9 -15
View File
@@ -5,29 +5,23 @@
#include <unordered_map>
Session* session;
void init_session(){
}
void end_session(){
}
void* Aalloc(size_t sz){
void* Aalloc(size_t sz, deallocator_t deallocator){
void* mem = malloc(sz);
auto memmap = (std::unordered_map<void*>*) session->memory_map;
memmap->insert(mem);
auto memmap = (std::unordered_map<void*, dealloctor_t>*) session->memory_map;
memmap[mem] = deallocator;
return mem;
}
int Afree(void* mem){
auto memmap = (std::unordered_map<void*>*) session->memory_map;
void Afree(void* mem){
auto memmap = (std::unordered_map<void*, dealloctor_t>*) session->memory_map;
memmap[mem](mem);
memmap->erase(mem);
return free(mem);
}
void register_memory(void* ptr, void(dealloc)(void*)){
auto memmap = (std::unordered_map<void*>*) session->memory_map;
memmap->insert(ptr);
void register_memory(void* ptr, deallocator_t deallocator){
auto memmap = (std::unordered_map<void*, dealloctor_t>*) session->memory_map;
memmap[ptr] = deallocator;
}