moved back to old acc
[vox.git] / src / core / utils.hpp
blob301ad16f706d25688af0fba1a89bd3654d535581
2 #ifndef _VXUTILS_H_
3 #define _VXUTILS_H_
5 #include <vector>
6 #include "pcheader.hpp"
7 #include "mem.hpp"
9 #define _ss(_vm_) (_vm_)->_sharedstate
11 #ifndef NO_GARBAGE_COLLECTOR
12 # define _opt_ss(_vm_) (_vm_)->_sharedstate
13 #else
14 # define _opt_ss(_vm_) NULL
15 #endif
17 #define _GETSAFE_OBJ(v,idx,type,o) \
18 { \
19 if(!vox_aux_gettypedarg(v,idx,type,&o)) \
20 { \
21 return VX_ERROR; \
22 } \
25 #define vox_aux_paramscheck(v,count) \
26 { \
27 if(vox_gettop(v) < count) \
28 { \
29 v->ThrowError("not enough params in the stack"); \
30 return VX_ERROR; \
31 } \
34 struct BufState
36 const char *buf;
37 VXInteger ptr;
38 VXInteger size;
41 VXInteger buf_lexfeed(VXUserPointer file);
42 VXInteger file_read(VXUserPointer file,VXUserPointer buf,VXInteger size);
43 VXInteger file_write(VXUserPointer file, VXUserPointer p, VXInteger size);
44 VXInteger _io_file_lexfeed_PLAIN(VXUserPointer file);
45 VXInteger _io_file_lexfeed_UCS2_LE(VXUserPointer file);
46 VXInteger _io_file_lexfeed_UCS2_BE(VXUserPointer file);
48 #endif //_VXUTILS_H_