IoCFFIPointer *IoCFFIPointer_proto(void *state) { IoObject *self = IoCFFIDataType_new(state); IoObject_tag_(self, IoCFFIPointer_newTag(state)); IoObject_setSlot_to_(self, IOSYMBOL("pointers"), IoMap_new(state)); IoObject_setDataPointer_(self, calloc(1, sizeof(IoCFFIPointerData))); memset(DATA(self), 0, sizeof(IoCFFIPointerData)); DATA(self)->valuePointer = &(DATA(self)->ptr); IoState_registerProtoWithFunc_(state, self, IoCFFIPointer_proto); { IoMethodTable methodTable[] = { {"address", IoCFFIPointer_address}, {"asBuffer", IoCFFIPointer_asBuffer}, {"at", IoCFFIPointer_at}, {"atPut", IoCFFIPointer_atPut}, {"castTo", IoCFFIPointer_castTo}, {"value", IoCFFIPointer_value}, {"setValue", IoCFFIPointer_setValue}, {"toType", IoCFFIPointer_toType}, {NULL, NULL}, }; IoObject_addMethodTable_(self, methodTable); } return self; }
IoCFFIArray *IoCFFIArray_proto(void *state) { IoObject *self = IoCFFIDataType_new(state); IoObject_tag_(self, IoCFFIArray_newTag(state)); IoObject_setDataPointer_(self, io_calloc(1, sizeof(IoCFFIArrayData))); memset(DATA(self), 0, sizeof(IoCFFIArrayData)); DATA(self)->needToFreeBuffer = 0; IoState_registerProtoWithFunc_(state, self, IoCFFIArray_proto); { IoMethodTable methodTable[] = { {"address", IoCFFIArray_address}, {"asBuffer", IoCFFIArray_asBuffer}, {"at", IoCFFIArray_at}, {"atPut", IoCFFIArray_atPut}, {"setValue", IoCFFIArray_setValue}, {"size", IoCFFIArray_size}, {"with", IoCFFIArray_with}, {NULL, NULL}, }; IoObject_addMethodTable_(self, methodTable); } return self; }