Skip to content

Commit bfbe4ee

Browse files
committed
Merge pull request moonsharp-devs#128 from fgretief/refactor_table
Refactored Table class's Set/Get methods, added RawGet/Remove methods
2 parents 96b15de + 1d2bac0 commit bfbe4ee

3 files changed

Lines changed: 275 additions & 125 deletions

File tree

src/MoonSharp.Interpreter/DataStructs/LinkedListIndex.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,15 +82,17 @@ public void Add(TKey key, TValue value)
8282
/// Removes the specified key from the index, and the node indexed by the key from the linked list.
8383
/// </summary>
8484
/// <param name="key">The key.</param>
85-
public void Remove(TKey key)
85+
public bool Remove(TKey key)
8686
{
8787
LinkedListNode<TValue> node = Find(key);
8888

8989
if (node != null)
9090
{
9191
m_LinkedList.Remove(node);
92-
m_Map.Remove(key);
92+
return m_Map.Remove(key);
9393
}
94+
95+
return false;
9496
}
9597

9698

src/MoonSharp.Interpreter/DataTypes/DynValue.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -824,12 +824,21 @@ public object ToObject()
824824
return MoonSharp.Interpreter.Interop.Converters.ScriptToClrConversions.DynValueToObject(this);
825825
}
826826

827+
/// <summary>
828+
/// Converts this MoonSharp DynValue to a CLR object of the specified type.
829+
/// </summary>
830+
public object ToObject(Type desiredType)
831+
{
832+
//Contract.Requires(desiredType != null);
833+
return MoonSharp.Interpreter.Interop.Converters.ScriptToClrConversions.DynValueToObjectOfType(this, desiredType, null, false);
834+
}
835+
827836
/// <summary>
828837
/// Converts this MoonSharp DynValue to a CLR object of the specified type.
829838
/// </summary>
830839
public T ToObject<T>()
831840
{
832-
return (T)MoonSharp.Interpreter.Interop.Converters.ScriptToClrConversions.DynValueToObjectOfType(this, typeof(T), null, false);
841+
return (T)ToObject(typeof(T));
833842
}
834843

835844
#if HASDYNAMIC

0 commit comments

Comments
 (0)