static int machine_add_machine( int (*init_function)( fuse_machine_info *machine ) ) { fuse_machine_info *machine; int error; machine_count++; machine_types = libspectrum_realloc( machine_types, machine_count * sizeof( fuse_machine_info* ) ); machine_types[ machine_count - 1 ] = malloc( sizeof( fuse_machine_info ) ); if( !machine_types[ machine_count - 1 ] ) { ui_error( UI_ERROR_ERROR, "out of memory at %s:%d", __FILE__, __LINE__ ); return 1; } machine = machine_types[ machine_count - 1 ]; error = init_function( machine ); if( error ) return error; machine_set_const_timings( machine ); machine->capabilities = libspectrum_machine_capabilities( machine->machine ); return 0; }
static int machine_add_machine( int (*init_function)( fuse_machine_info *machine ) ) { fuse_machine_info *machine; int error; machine_count++; machine_types = libspectrum_renew( fuse_machine_info *, machine_types, machine_count ); machine_types[ machine_count - 1 ] = libspectrum_new( fuse_machine_info, 1 ); machine = machine_types[ machine_count - 1 ]; error = init_function( machine ); if( error ) return error; machine_set_const_timings( machine ); machine->capabilities = libspectrum_machine_capabilities( machine->machine ); return 0; }