+ sim->next_actiontime = sim->curtime;
+
+ sim->controller (sim, &sim->stepno, &sim->next_actiontime);
+
+ if (sim->stepno==A2CONTROLLER_DONE) {
+
+ DONE:
+ sim->stepno=A2CONTROLLER_FREE;
+ sim->controller (sim, &sim->stepno, &sim->next_actiontime);
+ /* if stepno is changed, return 1 */
+ if (sim->stepno != A2CONTROLLER_FREE)
+ return 1;
+
+ XClearWindow(sim->dpy, sim->window);
+
+ /* free sim */
+ /* This is from a2_make_font */
+ free(sim->text_im->data);
+ sim->text_im->data = 0;
+ XDestroyImage(sim->text_im);
+
+ /* And free else */
+ analogtv_release(sim->dec);
+ free(sim->st);
+ free(sim->inp);
+ free(sim);