Added FLUID_STMT_START and FLUID_STMT_END

This commit is contained in:
carlo-bramini 2017-10-21 18:40:57 +02:00
parent 031c3671da
commit 6f7ec3b1fc
2 changed files with 22 additions and 18 deletions

View file

@ -2030,59 +2030,59 @@ fluid_sample_import_sfont(fluid_sample_t* sample, SFSample* sfsample, fluid_defs
equivalent to the matching ID list in memory regardless of LE/BE machine
*/
#define READCHUNK(var,fd) G_STMT_START { \
#define READCHUNK(var,fd) FLUID_STMT_START { \
if (!safe_fread(var, 8, fd)) \
return(FAIL); \
((SFChunk *)(var))->size = GUINT32_FROM_LE(((SFChunk *)(var))->size); \
} G_STMT_END
} FLUID_STMT_END
#define READD(var,fd) G_STMT_START { \
#define READD(var,fd) FLUID_STMT_START { \
unsigned int _temp; \
if (!safe_fread(&_temp, 4, fd)) \
return(FAIL); \
var = GINT32_FROM_LE(_temp); \
} G_STMT_END
} FLUID_STMT_END
#define READW(var,fd) G_STMT_START { \
#define READW(var,fd) FLUID_STMT_START { \
unsigned short _temp; \
if (!safe_fread(&_temp, 2, fd)) \
return(FAIL); \
var = GINT16_FROM_LE(_temp); \
} G_STMT_END
} FLUID_STMT_END
#define READID(var,fd) G_STMT_START { \
#define READID(var,fd) FLUID_STMT_START { \
if (!safe_fread(var, 4, fd)) \
return(FAIL); \
} G_STMT_END
} FLUID_STMT_END
#define READSTR(var,fd) G_STMT_START { \
#define READSTR(var,fd) FLUID_STMT_START { \
if (!safe_fread(var, 20, fd)) \
return(FAIL); \
(*var)[20] = '\0'; \
} G_STMT_END
} FLUID_STMT_END
#define READB(var,fd) G_STMT_START { \
#define READB(var,fd) FLUID_STMT_START { \
if (!safe_fread(&var, 1, fd)) \
return(FAIL); \
} G_STMT_END
} FLUID_STMT_END
#define FSKIP(size,fd) G_STMT_START { \
#define FSKIP(size,fd) FLUID_STMT_START { \
if (!safe_fseek(fd, size, SEEK_CUR)) \
return(FAIL); \
} G_STMT_END
} FLUID_STMT_END
#define FSKIPW(fd) G_STMT_START { \
#define FSKIPW(fd) FLUID_STMT_START { \
if (!safe_fseek(fd, 2, SEEK_CUR)) \
return(FAIL); \
} G_STMT_END
} FLUID_STMT_END
/* removes and advances a fluid_list_t pointer */
#define SLADVREM(list, item) G_STMT_START { \
#define SLADVREM(list, item) FLUID_STMT_START { \
fluid_list_t *_temp = item; \
item = fluid_list_next(item); \
list = fluid_list_remove_link(list, _temp); \
delete1_fluid_list(_temp); \
} G_STMT_END
} FLUID_STMT_END
static int chunkid (unsigned int id);
static int load_body (unsigned int size, SFData * sf, FILE * fd);

View file

@ -65,6 +65,10 @@ void fluid_time_config(void);
#define FLUID_INT_TO_POINTER GINT_TO_POINTER
#define FLUID_N_ELEMENTS(struct) (sizeof (struct) / sizeof (struct[0]))
/* Open/closes statement block */
#define FLUID_STMT_START G_STMT_START
#define FLUID_STMT_END G_STMT_END
#define FLUID_IS_BIG_ENDIAN (G_BYTE_ORDER == G_BIG_ENDIAN)
/*