diff options
Diffstat (limited to 'src/bindings/mono/eo_mono/iwrapper.cs')
-rw-r--r-- | src/bindings/mono/eo_mono/iwrapper.cs | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/bindings/mono/eo_mono/iwrapper.cs b/src/bindings/mono/eo_mono/iwrapper.cs index 8305ba5e99..a6864cbb63 100644 --- a/src/bindings/mono/eo_mono/iwrapper.cs +++ b/src/bindings/mono/eo_mono/iwrapper.cs @@ -853,12 +853,9 @@ public static class Globals if (nativeArray == IntPtr.Zero) throw new ArgumentException("nativeArray is null", nameof(nativeArray)); - uint count = Eina.ArrayNativeFunctions.eina_array_count_custom_export_mono(nativeArray); List<T> list = new List<T>(); - for (uint i = 0; i < count; i++) - { - list.Add(Eina.TraitFunctions.NativeToManaged<T>(Eina.ArrayNativeFunctions.eina_array_data_get_custom_export_mono(nativeArray, i))); - } + UpdateListFromNativeArray(list, nativeArray); + return list; } @@ -875,6 +872,21 @@ public static class Globals return nativeArray; } + internal static void UpdateListFromNativeArray<T>(IList<T> list, IntPtr nativeArray) + { + list.Clear(); + if (nativeArray == IntPtr.Zero) + { + return; + } + + uint count = Eina.ArrayNativeFunctions.eina_array_count_custom_export_mono(nativeArray); + for (uint i = 0; i < count; i++) + { + list.Add(Eina.TraitFunctions.NativeToManaged<T>(Eina.ArrayNativeFunctions.eina_array_data_get_custom_export_mono(nativeArray, i))); + } + } + } // Globals /// <summary> |