|
2 | 2 | ** Tag methods
|
3 | 3 | */
|
4 | 4 |
|
5 |
| -use std::mem; |
6 | 5 | use std::ptr;
|
7 | 6 |
|
8 | 7 | use libc::{c_char, c_int, c_uint};
|
@@ -62,54 +61,53 @@ unsafe fn ttypename(i: usize) -> *const c_char {
|
62 | 61 | luaT_typenames_[i + 1]
|
63 | 62 | }
|
64 | 63 |
|
65 |
| -static mut udatatypename: [c_char; 9] = |
66 |
| - unsafe { *mem::transmute::<&[u8; 9], &[c_char; 9]>(b"userdata\0") }; |
| 64 | +const udatatypename: *const c_char = cstr!("userdata"); |
67 | 65 |
|
68 | 66 | #[no_mangle]
|
69 |
| -pub static mut luaT_typenames_: [*const c_char; LUA_TOTALTAGS] = unsafe { |
| 67 | +pub static mut luaT_typenames_: [*const c_char; LUA_TOTALTAGS] = { |
70 | 68 | [
|
71 |
| - b"no value\0" as *const u8 as *const c_char, |
72 |
| - b"nil\0" as *const u8 as *const c_char, |
73 |
| - b"boolean\0" as *const u8 as *const c_char, |
74 |
| - udatatypename.as_ptr(), |
75 |
| - b"number\0" as *const u8 as *const c_char, |
76 |
| - b"string\0" as *const u8 as *const c_char, |
77 |
| - b"table\0" as *const u8 as *const c_char, |
78 |
| - b"function\0" as *const u8 as *const c_char, |
79 |
| - udatatypename.as_ptr(), |
80 |
| - b"thread\0" as *const u8 as *const c_char, |
81 |
| - b"proto\0" as *const u8 as *const c_char, /* this last case is used for tests only */ |
| 69 | + cstr!("no value"), |
| 70 | + cstr!("nil"), |
| 71 | + cstr!("boolean"), |
| 72 | + udatatypename, |
| 73 | + cstr!("number"), |
| 74 | + cstr!("string"), |
| 75 | + cstr!("table"), |
| 76 | + cstr!("function"), |
| 77 | + udatatypename, |
| 78 | + cstr!("thread"), |
| 79 | + cstr!("proto"), /* this last case is used for tests only */ |
82 | 80 | ]
|
83 | 81 | };
|
84 | 82 |
|
85 | 83 | #[no_mangle]
|
86 | 84 | pub unsafe extern "C" fn luaT_init(L: *mut lua_State) {
|
87 | 85 | static mut luaT_eventname: [*const c_char; 24] = [
|
88 | 86 | /* ORDER TM */
|
89 |
| - b"__index\0" as *const u8 as *const c_char, |
90 |
| - b"__newindex\0" as *const u8 as *const c_char, |
91 |
| - b"__gc\0" as *const u8 as *const c_char, |
92 |
| - b"__mode\0" as *const u8 as *const c_char, |
93 |
| - b"__len\0" as *const u8 as *const c_char, |
94 |
| - b"__eq\0" as *const u8 as *const c_char, |
95 |
| - b"__add\0" as *const u8 as *const c_char, |
96 |
| - b"__sub\0" as *const u8 as *const c_char, |
97 |
| - b"__mul\0" as *const u8 as *const c_char, |
98 |
| - b"__mod\0" as *const u8 as *const c_char, |
99 |
| - b"__pow\0" as *const u8 as *const c_char, |
100 |
| - b"__div\0" as *const u8 as *const c_char, |
101 |
| - b"__idiv\0" as *const u8 as *const c_char, |
102 |
| - b"__band\0" as *const u8 as *const c_char, |
103 |
| - b"__bor\0" as *const u8 as *const c_char, |
104 |
| - b"__bxor\0" as *const u8 as *const c_char, |
105 |
| - b"__shl\0" as *const u8 as *const c_char, |
106 |
| - b"__shr\0" as *const u8 as *const c_char, |
107 |
| - b"__unm\0" as *const u8 as *const c_char, |
108 |
| - b"__bnot\0" as *const u8 as *const c_char, |
109 |
| - b"__lt\0" as *const u8 as *const c_char, |
110 |
| - b"__le\0" as *const u8 as *const c_char, |
111 |
| - b"__concat\0" as *const u8 as *const c_char, |
112 |
| - b"__call\0" as *const u8 as *const c_char, |
| 87 | + cstr!("__index"), |
| 88 | + cstr!("__newindex"), |
| 89 | + cstr!("__gc"), |
| 90 | + cstr!("__mode"), |
| 91 | + cstr!("__len"), |
| 92 | + cstr!("__eq"), |
| 93 | + cstr!("__add"), |
| 94 | + cstr!("__sub"), |
| 95 | + cstr!("__mul"), |
| 96 | + cstr!("__mod"), |
| 97 | + cstr!("__pow"), |
| 98 | + cstr!("__div"), |
| 99 | + cstr!("__idiv"), |
| 100 | + cstr!("__band"), |
| 101 | + cstr!("__bor"), |
| 102 | + cstr!("__bxor"), |
| 103 | + cstr!("__shl"), |
| 104 | + cstr!("__shr"), |
| 105 | + cstr!("__unm"), |
| 106 | + cstr!("__bnot"), |
| 107 | + cstr!("__lt"), |
| 108 | + cstr!("__le"), |
| 109 | + cstr!("__concat"), |
| 110 | + cstr!("__call"), |
113 | 111 | ];
|
114 | 112 | let mut i = 0;
|
115 | 113 | while i < TM_N {
|
@@ -177,7 +175,7 @@ pub unsafe extern "C" fn luaT_objtypename(L: *mut lua_State, o: *const TValue) -
|
177 | 175 | mt = (*uvalue(o)).metatable;
|
178 | 176 | }
|
179 | 177 | if !mt.is_null() {
|
180 |
| - let name = luaH_getshortstr(mt, luaS_new(L, b"__name\0" as *const u8 as *const c_char)); |
| 178 | + let name = luaH_getshortstr(mt, luaS_new(L, cstr!("__name"))); |
181 | 179 | if ttisstring(name) {
|
182 | 180 | /* is '__name' a string? */
|
183 | 181 | return getstr(tsvalue(name)); /* use it as type name */
|
@@ -257,21 +255,11 @@ pub unsafe extern "C" fn luaT_trybinTM(
|
257 | 255 | if tonumber(p1, &mut dummy) != 0 && tonumber(p2, &mut dummy) != 0 {
|
258 | 256 | luaG_tointerror(L, p1, p2);
|
259 | 257 | } else {
|
260 |
| - luaG_opinterror( |
261 |
| - L, |
262 |
| - p1, |
263 |
| - p2, |
264 |
| - b"perform bitwise operation on\0" as *const u8 as *const c_char, |
265 |
| - ); |
| 258 | + luaG_opinterror(L, p1, p2, cstr!("perform bitwise operation on")); |
266 | 259 | }
|
267 | 260 | }
|
268 | 261 | _ => {
|
269 |
| - luaG_opinterror( |
270 |
| - L, |
271 |
| - p1, |
272 |
| - p2, |
273 |
| - b"perform arithmetic on\0" as *const u8 as *const c_char, |
274 |
| - ); |
| 262 | + luaG_opinterror(L, p1, p2, cstr!("perform arithmetic on")); |
275 | 263 | }
|
276 | 264 | }
|
277 | 265 | }
|
|
0 commit comments