static void _decode_bog(BITBUFFER *bb, BD_IG_BOG *p) { unsigned ii; p->default_valid_button_id_ref = bb_read(bb, 16); p->num_buttons = bb_read(bb, 8); p->button = calloc(p->num_buttons, sizeof(BD_IG_BUTTON)); for (ii = 0; ii < p->num_buttons; ii++) { _decode_button(bb, &p->button[ii]); } }
static int _decode_bog(BITBUFFER *bb, BD_IG_BOG *p) { unsigned ii; p->default_valid_button_id_ref = bb_read(bb, 16); p->num_buttons = bb_read(bb, 8); p->button = calloc(p->num_buttons, sizeof(BD_IG_BUTTON)); if (!p->button) { BD_DEBUG(DBG_DECODE | DBG_CRIT, "out of memory\n"); return 0; } for (ii = 0; ii < p->num_buttons; ii++) { if (!_decode_button(bb, &p->button[ii])) { return 0; } } return 1; }