#include <stdarg.h>
#include "class.h"
#include "interface.h"
Go to the source code of this file.
Define Documentation
| #define clone |
( |
|
object | ) |
classClone((void *)(object)) |
| #define delete |
( |
|
object | ) |
classDelete((void **)(object)) |
| #define new |
( |
|
class, |
|
|
|
... |
|
) |
| classNew(_##class, ##__VA_ARGS__) |
Typedef Documentation
Function Documentation
| void* classClone |
( |
void * |
| ) |
|
| void classDelete |
( |
void ** |
| ) |
|
Definition at line 33 of file class.c.
{
CALL(*object, Class, dtor);
free(*object - sizeof(void*));
*object = NULL;
}
Definition at line 15 of file class.c.
{
void * object = calloc(1, class->object_size + sizeof(void*));
va_list params;
if (class->init) class->init();
* (class_ptr *)object = class;
object += sizeof(void*);
va_start(params, class);
CALL(object, Class, ctor, ¶ms);
va_end(params);
return object;
}