1 /**[txh]********************************************************************
3 Copyright (c) 2004 by Salvador E. Tropea.
4 Covered by the GPL license.
8 Most alloc/free routines are here. Free routines must accept NULL
9 pointers. Alloc functions must set mi_error. @<p>
11 ***************************************************************************/
15 void *mi_calloc(size_t count, size_t sz)
17 void *res=calloc(count,sz);
19 mi_error=MI_OUT_OF_MEMORY;
23 void *mi_calloc1(size_t sz)
25 return mi_calloc(1,sz);
28 char *mi_malloc(size_t sz)
32 mi_error=MI_OUT_OF_MEMORY;
36 mi_results *mi_alloc_results(void)
38 return (mi_results *)mi_calloc1(sizeof(mi_results));
41 mi_output *mi_alloc_output(void)
43 return (mi_output *)mi_calloc1(sizeof(mi_output));
46 mi_frames *mi_alloc_frames(void)
48 return (mi_frames *)mi_calloc1(sizeof(mi_frames));
51 mi_gvar *mi_alloc_gvar(void)
53 return (mi_gvar *)mi_calloc1(sizeof(mi_gvar));
56 mi_gvar_chg *mi_alloc_gvar_chg(void)
58 return (mi_gvar_chg *)mi_calloc1(sizeof(mi_gvar_chg));
61 mi_bkpt *mi_alloc_bkpt(void)
63 mi_bkpt *b=(mi_bkpt *)mi_calloc1(sizeof(mi_bkpt));
72 mi_wp *mi_alloc_wp(void)
74 return (mi_wp *)mi_calloc1(sizeof(mi_wp));
77 mi_stop *mi_alloc_stop(void)
79 return (mi_stop *)mi_calloc1(sizeof(mi_stop));
82 mi_asm_insns *mi_alloc_asm_insns(void)
84 return (mi_asm_insns *)mi_calloc1(sizeof(mi_asm_insns));
87 mi_asm_insn *mi_alloc_asm_insn(void)
89 return (mi_asm_insn *)mi_calloc1(sizeof(mi_asm_insn));
92 mi_chg_reg *mi_alloc_chg_reg(void)
94 return (mi_chg_reg *)mi_calloc1(sizeof(mi_chg_reg));
97 /*****************************************************************************
99 *****************************************************************************/
101 void mi_free_frames(mi_frames *f)
110 mi_free_results(f->args);
117 void mi_free_bkpt(mi_bkpt *b)
133 void mi_free_gvar(mi_gvar *v)
143 if (v->numchild && v->child)
144 mi_free_gvar(v->child);
151 void mi_free_gvar_chg(mi_gvar_chg *p)
165 void mi_free_results_but(mi_results *r, mi_results *no)
187 mi_free_results_but(r->v.rs,no);
197 void mi_free_results(mi_results *r)
199 mi_free_results_but(r,NULL);
202 void mi_free_output_but(mi_output *r, mi_output *no, mi_results *no_r)
217 mi_free_results_but(r->c,no_r);
225 void mi_free_output(mi_output *r)
227 mi_free_output_but(r,NULL,NULL);
230 void mi_free_stop(mi_stop *s)
234 mi_free_frames(s->frame);
238 free(s->gdb_result_var);
239 free(s->return_value);
240 free(s->signal_name);
241 free(s->signal_meaning);
245 void mi_free_wp(mi_wp *wp)
257 void mi_free_asm_insns(mi_asm_insns *i)
264 mi_free_asm_insn(i->ins);
271 void mi_free_asm_insn(mi_asm_insn *i)
285 /*void mi_free_charp_list(char **l)
296 void mi_free_chg_reg(mi_chg_reg *r)