WIP: sdk, bug fixes, os support regression fix
This commit is contained in:
+3
-2
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user