From f6c027f10ee4df1c741ef9ac86e9f9ecc92c51d2 Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Mon, 7 Jul 2025 18:25:16 +0200 Subject: [PATCH] NLua: remove this[string field] overloads on LuaTable and LuaUserData - closes #4387 Those overloads try to imitate lua's "a.b" parsing by navigating tables recursively, e.g. `table["a.b"]` == `table.a.b`. This is not what's intended by 100% of the use cases of these overloads, so I've removed them. --- ExternalProjects/NLua/src/Lua.cs | 8 ++++++-- ExternalProjects/NLua/src/LuaTable.cs | 5 ++--- ExternalProjects/NLua/src/LuaUserData.cs | 5 ++--- References/NLua.dll | Bin 102400 -> 101888 bytes 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/ExternalProjects/NLua/src/Lua.cs b/ExternalProjects/NLua/src/Lua.cs index 5d2baa1ccd..598691fdee 100644 --- a/ExternalProjects/NLua/src/Lua.cs +++ b/ExternalProjects/NLua/src/Lua.cs @@ -890,6 +890,7 @@ namespace NLua return obj; } +#if false /// /// Gets a field of the table or userdata corresponding to the provided reference /// @@ -901,9 +902,10 @@ namespace NLua State.SetTop(oldTop); return returnValue; } +#endif /// - /// Gets a numeric field of the table or userdata corresponding to the provided reference + /// Gets a field of the table or userdata corresponding to the provided reference /// internal object GetObject(int reference, object field) { @@ -916,6 +918,7 @@ namespace NLua return returnValue; } +#if false /// /// Sets a field of the table or userdata corresponding to the provided reference /// to the provided value @@ -927,9 +930,10 @@ namespace NLua SetObject(FullPathToArray(field), val); State.SetTop(oldTop); } +#endif /// - /// Sets a numeric field of the table or userdata corresponding to the provided reference + /// Sets a field of the table or userdata corresponding to the provided reference /// to the provided value /// internal void SetObject(int reference, object field, object val) diff --git a/ExternalProjects/NLua/src/LuaTable.cs b/ExternalProjects/NLua/src/LuaTable.cs index a503ca702a..5579d84470 100644 --- a/ExternalProjects/NLua/src/LuaTable.cs +++ b/ExternalProjects/NLua/src/LuaTable.cs @@ -25,6 +25,7 @@ namespace NLua { } +#if false /// /// Indexer for string fields of the table /// @@ -41,10 +42,8 @@ namespace NLua lua.SetObject(_Reference, field, value); } } +#endif - /// - /// Indexer for numeric fields of the table - /// public object this[object field] { get => !TryGet(out var lua) ? null : lua.GetObject(_Reference, field); diff --git a/ExternalProjects/NLua/src/LuaUserData.cs b/ExternalProjects/NLua/src/LuaUserData.cs index 92b761c660..824dea58a0 100644 --- a/ExternalProjects/NLua/src/LuaUserData.cs +++ b/ExternalProjects/NLua/src/LuaUserData.cs @@ -10,6 +10,7 @@ namespace NLua { } +#if false /// /// Indexer for string fields of the userdata /// @@ -26,10 +27,8 @@ namespace NLua lua.SetObject(_Reference, field, value); } } +#endif - /// - /// Indexer for numeric fields of the userdata - /// public object this[object field] { get => !TryGet(out var lua) ? null : lua.GetObject(_Reference, field); diff --git a/References/NLua.dll b/References/NLua.dll index dc3149b9cf214d95f76d846ded55459ce6341049..26c62f241aef2bbb42d7d677c5e7d890f951a6f8 100644 GIT binary patch delta 27352 zcmb__2Yi&p*7wXj+p;Mn+4PXQ$?mh8O=zKo0HOD$Q~`+sDhNE7fT97G7zBlYga@&} zRTNMZR1^z{1%)emMa7O>M7=f?6nhuH|CHTqLg2mM_kQ{PIQ#t1Idf*_Ogl5r?6PE& zZOKO4nj7#_$l^W(9VL6x98>^q{L>lC&bCv8CxMCwrb8J&pe=#p}w#`CCZC$@Yl~|1pYF48wlKZ0qtu>3WeAg~#7L9?_cE)xRwECcVEP8Ov zhk^meaYp+Xck3tdSj>|AtOm}uXvu~X43}NYIb+;!UKNuU6xfnr2_#q(EJg*g2-sPT zC|8pI1*Yl0ge+(V+RPS+Lut3;;qv;4aIGKc;YM`61aH<)h)AGN@O&w*sGk&(LZR~| zc%y!DL;{7*mtaP){^E!fGbB1+irMv3A`&R{YzuyhReq`;8lgW^qDK87nnpP`oS-ry z!JK-58WS|?hZPsa|d|Y@E>u?M-1+Q|RDOlwveW!T&JA9tAVAL%C+Dni3>ruE7UVphQcS zSs0&S2k>d(btQRy`MT-6ygs4QIAE3M$3|^Pz<7;4M&)xuzPc!_T=#_I&%du`P^^ z8^e!P%efox4P&Dr{3u0>8}Th%wK0b(fg9yHe;L8XJoImPLM97S{V7VT7jcpqwkI8C zv<@?565+tAhk0I4K;(Z^nkdFRDjh!$+z2y9HaCzY++zMKF+R5n*jY8yLgw0%Wxubw z13>Q!A4c1&ZRYQZxpBOGRO@MIAKg_zo#rrCMo`ozx#~5fFcxylSO$2P)uyLSa59_d z$LJ7zNLmPnCtrVC=n_>ga089biL@xHq0GuUrJ$ho$i&0?MD!w?5d&Vz9rMTWS%PF@ za9}+lvCT6~)xF`)fIk0}=}Rg|;sY2Ru(40Vnt4f*KUMbIrfHIlJ?BnzG|AU0qO)sB z#$K~LB`qb{Xfcn9#P#okU2t}PngnlOi!V4XHU69H9(^iFfh%bsb!uk!Vbgegr^*sdTiugcsD-6yXKD6oUB$5 z%U06FI4No)kuYzbNDX9h1D4|0(Dbnowh>J5fvXucX1lZ`y4dWWc5!aw&_Uxb5oVi~ z>_FPnai4&%F^fJ3R*Wyr)#+vZ=I}b%{hf3nvlyR4r4fC>QGZ#cs{im_Cx*>%sSQh5 zTy4e)Gd81jJMJVkD_K_0Xg%Jz7L4NPs*^EfZncdO+jWsWMl)KO7iARER_2n7aya{$ zjG|=TBQX#g%WbzBvF2YH?c$o&&MeQ&QnOK`uEl6{CT0shSwJWz*Dm->j&MChp~+QF zR*hDY#nRO{xkAbawh4&0_cbbi@06$NM^=xQDxie8L1u8rH>*eKh>a9r2r#M z^q16_q8!C>+z~O~@kTQ%T4xnD)-=MFs*g;FncTd-b#YMnyRqzWDN3jcvL25`U4R

v2V$i)%}6u5XQc+eg#z~u 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 delta 27744 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 P&1`eqopd?