summaryrefslogtreecommitdiff
path: root/library/LuaTypes.cpp
diff options
context:
space:
mode:
authorAlexander Gavrilov2012-08-18 14:34:20 +0400
committerAlexander Gavrilov2012-08-18 14:34:20 +0400
commitc6694e386fa3a01bae34991a503b22fb4055e757 (patch)
tree8639075da1a681958c1740941951bfc42bd9bec6 /library/LuaTypes.cpp
parent24cc8b5c7add7e18b6bd42eea743a9e9d562a336 (diff)
downloaddfhack-c6694e386fa3a01bae34991a503b22fb4055e757.tar.gz
dfhack-c6694e386fa3a01bae34991a503b22fb4055e757.tar.bz2
dfhack-c6694e386fa3a01bae34991a503b22fb4055e757.tar.xz
Add rather inefficient type_identity wrapping for std::set.
Accessing an element is O(N), as if it was walking a list.
Diffstat (limited to 'library/LuaTypes.cpp')
-rw-r--r--library/LuaTypes.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/library/LuaTypes.cpp b/library/LuaTypes.cpp
index 8548c5d0..53523c3f 100644
--- a/library/LuaTypes.cpp
+++ b/library/LuaTypes.cpp
@@ -285,6 +285,9 @@ void container_identity::lua_item_read(lua_State *state, int fname_idx, void *pt
void container_identity::lua_item_write(lua_State *state, int fname_idx, void *ptr, int idx, int val_index)
{
+ if (is_readonly())
+ field_error(state, fname_idx, "container is read-only", "write");
+
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);