summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitor Sousa <vitorsousasilva@gmail.com>2017-06-20 14:29:33 -0300
committerVitor Sousa <vitorsousasilva@gmail.com>2017-06-20 14:33:12 -0300
commit6bed7269ea2ebe8bd25331e65211bc9d5f499d90 (patch)
treef388b26ad89d0d328e9818a53bd0acf0e2db68ba
parent9539a5390746bb988f8d75f11121839837d36a25 (diff)
downloadefl-6bed7269ea2ebe8bd25331e65211bc9d5f499d90.tar.gz
eina_mono: Fix eina.Inarray ReplaceAt method
-rw-r--r--src/bindings/mono/eina_mono/eina_inarray.cs12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/bindings/mono/eina_mono/eina_inarray.cs b/src/bindings/mono/eina_mono/eina_inarray.cs
index 26ff33136c..ef3acc1d62 100644
--- a/src/bindings/mono/eina_mono/eina_inarray.cs
+++ b/src/bindings/mono/eina_mono/eina_inarray.cs
@@ -238,15 +238,13 @@ public class Inarray<T> : IEnumerable<T>, IDisposable
public bool ReplaceAt(uint idx, T val)
{
- IntPtr ele = eina_inarray_nth(Handle, idx);
- if (ele == IntPtr.Zero)
+ var old = eina_inarray_nth(Handle, idx);
+ if (old == IntPtr.Zero)
return false;
if (OwnContent)
- NativeFreeInplace<T>(ele);
- ele = ManagedToNativeAllocInplace(val);
- var r = eina_inarray_insert_at(Handle, idx, ele);
- if (!r)
- NativeFreeInplace<T>(ele);
+ NativeFreeInplace<T>(old);
+ var ele = ManagedToNativeAllocInplace(val);
+ var r = eina_inarray_replace_at(Handle, idx, ele);
ResidueFreeInplace<T>(ele);
return r;
}