void print_person(person *ptr) { if (!EINA_MAGIC_CHECK(ptr, BASETYPE_MAGIC)){ EINA_MAGIC_FAIL(ptr, BASETYPE_MAGIC); return; } printf("name: %s\n", ptr->name); }
void print_pilot(pilot *ptr) { if (!EINA_MAGIC_CHECK(ptr, SUBTYPE_MAGIC)) { EINA_MAGIC_FAIL(ptr, SUBTYPE_MAGIC); return; } print_person(&ptr->base); printf("callsign: %s\n", ptr->callsign); }
void person_free(person *ptr) { if (!EINA_MAGIC_CHECK(ptr, BASETYPE_MAGIC)) { EINA_MAGIC_FAIL(ptr, BASETYPE_MAGIC); return; } EINA_MAGIC_SET(ptr, EINA_MAGIC_NONE); free(ptr->name); free(ptr); }
static void * _array_iterator_container_get(Eina_Iterator *iterator) { struct Array_Iterator *it = (struct Array_Iterator *)iterator; if (!EINA_MAGIC_CHECK(iterator, EINA_MAGIC_ITERATOR)) { EINA_MAGIC_FAIL(iterator, EINA_MAGIC_ITERATOR); return NULL; } return (void *)it->container; }
static void _array_iterator_free(Eina_Iterator *iterator) { struct Array_Iterator *it = (struct Array_Iterator *)iterator; if (!EINA_MAGIC_CHECK(iterator, EINA_MAGIC_ITERATOR)) { EINA_MAGIC_FAIL(iterator, EINA_MAGIC_ITERATOR); return; } EINA_MAGIC_SET(&it->base, EINA_MAGIC_NONE); free(it); }
void pilot_free(pilot *ptr) { if (!EINA_MAGIC_CHECK(ptr, SUBTYPE_MAGIC)) { EINA_MAGIC_FAIL(ptr, SUBTYPE_MAGIC); return; } EINA_MAGIC_SET(ptr, EINA_MAGIC_NONE); EINA_MAGIC_SET(&ptr->base, EINA_MAGIC_NONE); free(ptr->base.name); free(ptr->callsign); free(ptr); }
static Eina_Bool _array_iterator_next(Eina_Iterator *iterator, void **data) { struct Array_Iterator *it = (struct Array_Iterator *)iterator; if (!EINA_MAGIC_CHECK(iterator, EINA_MAGIC_ITERATOR)) { EINA_MAGIC_FAIL(iterator, EINA_MAGIC_ITERATOR); return EINA_FALSE; } EINA_SAFETY_ON_NULL_RETURN_VAL(data, EINA_FALSE); *data = NULL; if (it->current >= it->count) return EINA_FALSE; *data = ((char *)it->container) + it->item_size * it->current; it->current++; return EINA_TRUE; }