Ejemplo n.º 1
0
Archivo: state.c Proyecto: ysm001/slim
/**
 * デストラクタ
 */
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
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
Archivo: state.c Proyecto: ysm001/slim
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);
}