diff options
| author | Alexander Gavrilov | 2012-03-22 10:56:32 +0400 |
|---|---|---|
| committer | Alexander Gavrilov | 2012-03-22 10:56:32 +0400 |
| commit | 27824642d90a8bca445af4e6f5d51a89d8317708 (patch) | |
| tree | c30921b54f0971c37c775f11aeabaa258fe5b217 /library/LuaWrapper.cpp | |
| parent | ad10303cecd1e60a2e50b85a5f6f08656ff1bbf9 (diff) | |
| download | dfhack-27824642d90a8bca445af4e6f5d51a89d8317708.tar.gz dfhack-27824642d90a8bca445af4e6f5d51a89d8317708.tar.bz2 dfhack-27824642d90a8bca445af4e6f5d51a89d8317708.tar.xz | |
Minor refactoring of container indexing and object allocation.
Diffstat (limited to 'library/LuaWrapper.cpp')
| -rw-r--r-- | library/LuaWrapper.cpp | 25 |
1 files changed, 7 insertions, 18 deletions
diff --git a/library/LuaWrapper.cpp b/library/LuaWrapper.cpp index a7d83047..770f8f5a 100644 --- a/library/LuaWrapper.cpp +++ b/library/LuaWrapper.cpp @@ -265,29 +265,29 @@ int container_identity::lua_item_count(lua_State *state, void *ptr) int container_identity::lua_item_read(lua_State *state, int fname_idx, void *ptr, int idx) { - void *pitem = item_pointer(ptr, idx); auto id = (type_identity*)lua_touserdata(state, UPVAL_ITEM_ID); + void *pitem = item_pointer(id, ptr, idx); return id->lua_read(state, fname_idx, pitem); } void container_identity::lua_item_write(lua_State *state, int fname_idx, void *ptr, int idx, int val_index) { - void *pitem = item_pointer(ptr, idx); auto id = (type_identity*)lua_touserdata(state, UPVAL_ITEM_ID); + void *pitem = item_pointer(id, ptr, idx); id->lua_write(state, fname_idx, pitem, val_index); } int ptr_container_identity::lua_item_read(lua_State *state, int fname_idx, void *ptr, int idx) { - void *pitem = item_pointer(ptr, idx); auto id = (type_identity*)lua_touserdata(state, UPVAL_ITEM_ID); + void *pitem = item_pointer(&df::identity_traits<void*>::identity, ptr, idx); return df::pointer_identity::lua_read(state, fname_idx, pitem, id); } void ptr_container_identity::lua_item_write(lua_State *state, int fname_idx, void *ptr, int idx, int val_index) { - void *pitem = item_pointer(ptr, idx); auto id = (type_identity*)lua_touserdata(state, UPVAL_ITEM_ID); + void *pitem = item_pointer(&df::identity_traits<void*>::identity, ptr, idx); df::pointer_identity::lua_write(state, fname_idx, pitem, id, val_index); } @@ -307,25 +307,12 @@ void bit_container_identity::lua_item_write(lua_State *state, int fname_idx, voi field_error(state, fname_idx, "boolean or number expected", "write"); } -int df::buffer_container_identity::lua_item_read(lua_State *state, int fname_idx, void *ptr, int idx) -{ - auto id = (type_identity*)lua_touserdata(state, UPVAL_ITEM_ID); - void *pitem = ((uint8_t*)ptr) + idx * id->byte_size(); - return id->lua_read(state, fname_idx, pitem); -} - -void df::buffer_container_identity::lua_item_write(lua_State *state, int fname_idx, void *ptr, int idx, int val_index) -{ - auto id = (type_identity*)lua_touserdata(state, UPVAL_ITEM_ID); - void *pitem = ((uint8_t*)ptr) + idx * id->byte_size(); - id->lua_write(state, fname_idx, pitem, val_index); -} - /* */ static int change_error(lua_State *state) { luaL_error(state, "Attempt to change a read-only table.\n"); + return 0; } /** @@ -618,6 +605,8 @@ static int read_field(lua_State *state, const struct_field_info *field, void *pt case struct_field_info::END: return 0; } + + return 0; } static void write_field(lua_State *state, const struct_field_info *field, void *ptr, int value_idx) |
