summaryrefslogtreecommitdiff
path: root/src/bindings/mono/eo_mono/iwrapper.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/bindings/mono/eo_mono/iwrapper.cs')
-rw-r--r--src/bindings/mono/eo_mono/iwrapper.cs22
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>