/** * デストラクタ */ void state_free(State *s) { if (s->successors) { #ifdef PROFILE if (lmn_env.profile_level >= 3) profile_remove_space(PROFILE_SPACE__TRANS_OBJECT, sizeof(succ_data_t) * state_succ_num(s)); #endif if (has_trans_obj(s)) { unsigned int i; for (i = 0; i < state_succ_num(s); i++) { transition_free(transition(s, i)); } } LMN_FREE(s->successors); } if (s->local_flags) { LMN_FREE(s->local_flags); } state_expand_lock_destroy(s); state_free_mem(s); state_free_binstr(s); LMN_FREE(s); #ifdef PROFILE if (lmn_env.profile_level >= 3) { profile_remove_space(PROFILE_SPACE__STATE_OBJECT, sizeof(struct State)); } #endif }
void storyboard_free (Storyboard *self) { g_free (self->snippets_path); g_signal_handlers_disconnect_by_func (self->stage, clutter_main_quit, NULL); transition_free (self->transition); if (self->salut_stream != NULL) salut_stream_free (self->salut_stream); g_slice_free (Storyboard, self); }
void state_succ_clear(State *s) { if (has_trans_obj(s)) { unsigned int i; for (i = 0; i < state_succ_num(s); i++) { Transition t = transition(s, i); transition_free(t); } } #ifdef PROFILE if (lmn_env.profile_level >= 3) { profile_remove_space(PROFILE_SPACE__TRANS_OBJECT, sizeof(succ_data_t) * state_succ_num(s)); profile_add_space(PROFILE_SPACE__TRANS_OBJECT, 0); } #endif LMN_FREE(s->successors); s->successors = NULL; s->successor_num = 0; unset_trans_obj(s); }