|
@@ -10,14 +10,44 @@ void mp_ERROR_STR(af_Message *msg, af_Environment *env) {
|
|
|
free(*pinfo);
|
|
|
}
|
|
|
|
|
|
+size_t getSize(void) {
|
|
|
+ return sizeof(int *);
|
|
|
+}
|
|
|
+
|
|
|
+void initData(int **data) {
|
|
|
+ *data = calloc(sizeof(int), 1);
|
|
|
+ **data = 100;
|
|
|
+}
|
|
|
+
|
|
|
+void freeData(int **data) {
|
|
|
+ printf("**data = %d\n", **data);
|
|
|
+ free(*data);
|
|
|
+}
|
|
|
+
|
|
|
int main() {
|
|
|
aFunInit();
|
|
|
printf("Hello World\n");
|
|
|
|
|
|
af_Environment *env = makeEnvironment();
|
|
|
- addVarToProtectVarSpace(makeVar("global", 3, 3,
|
|
|
- makeObject("global", true, makeObjectAPI(), true, NULL, NULL, env)),
|
|
|
- env);
|
|
|
+ {
|
|
|
+ af_ObjectAPI *api = makeObjectAPI();
|
|
|
+ DLC_SYMBOL(objectAPIFunc) getSize_ = MAKE_SYMBOL(getSize, objectAPIFunc);
|
|
|
+ DLC_SYMBOL(objectAPIFunc) initData_ = MAKE_SYMBOL(initData, objectAPIFunc);
|
|
|
+ DLC_SYMBOL(objectAPIFunc) freeData_ = MAKE_SYMBOL(freeData, objectAPIFunc);
|
|
|
+ if (addAPI(getSize_, "obj_getDataSize", api) != 1)
|
|
|
+ return 2;
|
|
|
+ if (addAPI(initData_, "obj_initData", api) != 1)
|
|
|
+ return 2;
|
|
|
+ if (addAPI(freeData_, "obj_freeData", api) != 1)
|
|
|
+ return 2;
|
|
|
+
|
|
|
+ addVarToProtectVarSpace(makeVar("global", 3, 3,
|
|
|
+ makeObject("global", true, api, true, NULL, NULL, env)),
|
|
|
+ env);
|
|
|
+ FREE_SYMBOL(getSize_);
|
|
|
+ FREE_SYMBOL(initData_);
|
|
|
+ FREE_SYMBOL(freeData_);
|
|
|
+ }
|
|
|
addVarToProtectVarSpace(makeVar("object", 3, 3,
|
|
|
makeObject("object", true, makeObjectAPI(), true, NULL, NULL, env)),
|
|
|
env);
|