amf_data * amf_object_delete(amf_data * data, const char * name) { if (data != NULL) { amf_node * node = amf_list_first(&data->list_data); while (node != NULL) { node = node->next; if (strncmp((char*)(node->data->string_data.mbstr), name, (size_t)(node->data->string_data.size)) == 0) { amf_node * data_node = node->next; amf_data_free(amf_list_delete(&data->list_data, node)); return amf_list_delete(&data->list_data, data_node); } else { node = node->next; } } } return NULL; }
static amf_data * amf_list_pop(amf_list * list) { return amf_list_delete(list, list->last_element); }
amf_data * amf_array_delete(amf_data * data, amf_node * node) { return (data != NULL) ? amf_list_delete(&data->list_data, node) : NULL; }