Wrapper works
This commit is contained in:
parent
14026b1912
commit
eae7d9c670
4 changed files with 44 additions and 24 deletions
|
|
@ -76,13 +76,23 @@ static_lib:
|
||||||
static_lib_test: static_lib
|
static_lib_test: static_lib
|
||||||
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -o tests/extern_lib.out tests/extern_lib.cpp lib/gcoll.a
|
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -o tests/extern_lib.out tests/extern_lib.cpp lib/gcoll.a
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
static_lib_c:
|
static_lib_c:
|
||||||
# remove old files
|
# remove old files
|
||||||
rm -f lib/event.o lib/profiler.o lib/heap.o lib/gcoll.a tests/extern_lib.out
|
rm -f lib/event.o lib/profiler.o lib/heap.o lib/gcoll.a tests/extern_lib.out
|
||||||
# compile object files
|
# compile object files
|
||||||
|
=======
|
||||||
|
wrapper:
|
||||||
|
rm -f lib/event.o lib/profiler.o lib/heap.o lib/coll.a tests/wrapper.out
|
||||||
|
>>>>>>> 12816ea (Wrapper works)
|
||||||
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -O3 -g -c -o lib/event.o lib/event.cpp -fPIC
|
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -O3 -g -c -o lib/event.o lib/event.cpp -fPIC
|
||||||
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -O3 -g -c -o lib/profiler.o lib/profiler.cpp -fPIC
|
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -O3 -g -c -o lib/profiler.o lib/profiler.cpp -fPIC
|
||||||
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -O3 -g -c -o lib/heap.o lib/heap.cpp -fPIC
|
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -O3 -g -c -o lib/heap.o lib/heap.cpp -fPIC
|
||||||
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -O3 -g -c -o lib/cheap.o lib/cheap.cpp -fPIC
|
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -O3 -g -c -o lib/cheap.o lib/cheap.cpp -fPIC
|
||||||
|
<<<<<<< HEAD
|
||||||
# create static library
|
# create static library
|
||||||
ar r lib/gcoll.a lib/event.o lib/profiler.o lib/heap.o
|
ar r lib/gcoll.a lib/event.o lib/profiler.o lib/heap.o
|
||||||
|
=======
|
||||||
|
ar rcs lib/gcoll.a lib/event.o lib/profiler.o lib/heap.o lib/cheap.o
|
||||||
|
clang -stdlib=libc++ $(WFLAGS) $(LIB_INCL) -o tests/wrapper.out tests/wrapper.c lib/gcoll.a -lstdc++
|
||||||
|
>>>>>>> 12816ea (Wrapper works)
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define DEBUG
|
// #define DEBUG
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
typedef struct cheap
|
typedef struct cheap
|
||||||
|
|
@ -19,11 +19,11 @@ struct cheap;
|
||||||
typedef struct cheap cheap_t;
|
typedef struct cheap cheap_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
cheap_t *cheap_the() noexcept;
|
cheap_t *cheap_the();
|
||||||
void cheap_init() noexcept;
|
void cheap_init();
|
||||||
void cheap_dispose() noexcept;
|
void cheap_dispose();
|
||||||
void *cheap_alloc(unsigned long size) noexcept;
|
void *cheap_alloc(unsigned long size);
|
||||||
void cheap_set_profiler(cheap_t *cheap, bool mode) noexcept;
|
void cheap_set_profiler(cheap_t *cheap, bool mode);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,15 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "heap.hpp"
|
#include "heap.hpp"
|
||||||
#include "cheap.h"
|
#include "cheap.h"
|
||||||
|
|
||||||
|
#ifndef DEBUG
|
||||||
struct cheap
|
struct cheap
|
||||||
{
|
{
|
||||||
void *obj;
|
void *obj;
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
cheap_t *cheap_the()
|
cheap_t *cheap_the()
|
||||||
{
|
{
|
||||||
|
|
@ -27,7 +30,9 @@ void cheap_init()
|
||||||
|
|
||||||
void cheap_dispose()
|
void cheap_dispose()
|
||||||
{
|
{
|
||||||
|
std::cout << "In dispose\n";
|
||||||
GC::Heap::dispose();
|
GC::Heap::dispose();
|
||||||
|
std::cout << "Out dispose" << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void *cheap_alloc(unsigned long size)
|
void *cheap_alloc(unsigned long size)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include "cheap.h"
|
#include "cheap.h"
|
||||||
|
|
||||||
|
|
@ -18,23 +19,25 @@ void test_init()
|
||||||
printf("----- EXIT TEST_INIT --------------------------\n");
|
printf("----- EXIT TEST_INIT --------------------------\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
cheap_t *test_the()
|
/* Uncomment ONLY if run with DEBUG defined in cheap.h */
|
||||||
{
|
|
||||||
printf("----- IN TEST_THE -----------------------------\n");
|
|
||||||
|
|
||||||
cheap_t *fst_heap = cheap_the();
|
// cheap_t *test_the()
|
||||||
|
// {
|
||||||
|
// printf("----- IN TEST_THE -----------------------------\n");
|
||||||
|
|
||||||
printf("Heap 1:\t%p\n", fst_heap->obj);
|
// cheap_t *fst_heap = cheap_the();
|
||||||
|
|
||||||
cheap_t *snd_heap = cheap_the();
|
// printf("Heap 1:\t%p\n", fst_heap->obj);
|
||||||
|
|
||||||
printf("Heap 2:\t%p\n", snd_heap->obj);
|
// cheap_t *snd_heap = cheap_the();
|
||||||
|
|
||||||
printf("----- EXIT TEST_THE ---------------------------\n");
|
// printf("Heap 2:\t%p\n", snd_heap->obj);
|
||||||
|
|
||||||
free(snd_heap);
|
// printf("----- EXIT TEST_THE ---------------------------\n");
|
||||||
return fst_heap;
|
|
||||||
}
|
// free(snd_heap);
|
||||||
|
// return fst_heap;
|
||||||
|
// }
|
||||||
|
|
||||||
void test_profiler(cheap_t *heap)
|
void test_profiler(cheap_t *heap)
|
||||||
{
|
{
|
||||||
|
|
@ -71,20 +74,22 @@ void test_dispose()
|
||||||
printf("----- EXIT TEST_DISPOSE -----------------------\n");
|
printf("----- EXIT TEST_DISPOSE -----------------------\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main()
|
||||||
{
|
{
|
||||||
test_init();
|
test_init();
|
||||||
|
|
||||||
cheap_t *heap = test_the();
|
/* Uncomment ONLY if run with DEBUG defined in cheap.h */
|
||||||
|
// cheap_t *heap = test_the();
|
||||||
test_profiler(heap);
|
// test_profiler(heap);
|
||||||
|
|
||||||
Object *o = test_alloc();
|
Object *o = test_alloc();
|
||||||
|
printf("Object size: %lu\n", sizeof(Object));
|
||||||
printf("Object:\n\tx: %d\n\ty: %d\n\tz: %d\n\tvel: %f\n", o->x, o->y, o->z, o->velocity);
|
printf("Object:\n\tx: %d\n\ty: %d\n\tz: %d\n\tvel: %f\n", o->x, o->y, o->z, o->velocity);
|
||||||
|
|
||||||
test_dispose();
|
test_dispose();
|
||||||
|
|
||||||
free(heap);
|
/* Sefault I don't understand, don't uncomment */
|
||||||
free(o);
|
// free(heap);
|
||||||
|
// free(o);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue