bs.fread((char*)(argp),(len),(nelem),bs.data)
#define BGET_FGETC() bs.fgetc(bs.data)
#else
-#define BGET_FREAD(argp, len, nelem) PerlIO_fread((argp), (len), (nelem), fp)
+#define BGET_FREAD(argp, len, nelem) PerlIO_read(fp, (argp), (len)*(nelem))
#define BGET_FGETC() PerlIO_getc(fp)
#endif /* INDIRECT_BGET_MACROS */
BGET_U32(arg); \
if (arg) { \
New(666, pv.xpv_pv, arg, char); \
- PerlIO_fread(pv.xpv_pv, 1, arg, fp);\
+ PerlIO_read(fp, pv.xpv_pv, arg); \
pv.xpv_len = arg; \
pv.xpv_cur = arg - 1; \
} else { \
arg = atof(str); \
} STMT_END
-#define BGET_objindex(arg) STMT_START { \
- U32 ix; \
- BGET_U32(ix); \
- arg = obj_list[ix]; \
+#define BGET_objindex(arg, type) STMT_START { \
+ U32 ix; \
+ BGET_U32(ix); \
+ arg = (type)obj_list[ix]; \
} STMT_END
+#define BGET_svindex(arg) BGET_objindex(arg, svindex)
+#define BGET_opindex(arg) BGET_objindex(arg, opindex)
#define BSET_ldspecsv(sv, arg) sv = specialsv_list[arg]