void jmp_back(void) { /* we need clean up the return address in stack. */ DESTROY_STACK(); JMP_ADDR(back_address + 12); }
int main(int c, char **v) { int ret = 0; double result = 0.0; if(c != 2) usage(-1); assert(v[1]); expression = v[1]; stack = NEW_STACK(STACK_SIZE); ret = calculation(&result); if(ret) { printf("calculation failed, ret = %d\n", ret); DESTROY_STACK(stack); return ret; } printf("%lf\n",result); DESTROY_STACK(stack); return 0; }
int main( int argc, char **argv) { MANAGED_STACK(PandaNextSeq, next); PandaAssembler control_assembler; PandaAssembler experimental_assembler; PandaArgsFastq data = panda_args_fastq_new(); bool result; bool suppress_quality_diffs; if (!panda_diff_parse_args(argv, argc, panda_stdargs, panda_stdargs_length, panda_args_fastq_args, panda_args_fastq_args_length, (PandaTweakGeneral) panda_args_fastq_tweak, (PandaOpener) panda_args_fastq_opener, (PandaSetup) panda_args_fastq_setup, data, &control_assembler, &experimental_assembler, &next, &next_data, &next_destroy, &suppress_quality_diffs)) { panda_args_fastq_free(data); DESTROY_STACK(next); return 1; } result = panda_diff(next, next_data, (PandaAssemble) panda_assembler_assemble, control_assembler, (PandaAssemble) panda_assembler_assemble, experimental_assembler, suppress_quality_diffs); DESTROY_STACK(next); panda_assembler_unref(control_assembler); panda_assembler_unref(experimental_assembler); panda_args_fastq_free(data); return result ? 0 : 1; }