diff --git a/src/bin/eolian_mono/eolian/mono/events.hh b/src/bin/eolian_mono/eolian/mono/events.hh --- a/src/bin/eolian_mono/eolian/mono/events.hh +++ b/src/bin/eolian_mono/eolian/mono/events.hh @@ -232,7 +232,7 @@ auto const& indent = current_indentation(*context); return as_generator( indent.inc() << "Contract.Requires(e != null, nameof(e));\n" - << indent.inc() << "IntPtr info = e.Arg.NativeHandle;\n" + << indent.inc() << "IntPtr info = ((Efl.Eo.IWrapper)e.Arg).NativeHandle;\n" << indent.inc() << "CallNativeEventCallback(" << library_name << ", \"_" << evt_c_name << "\", info, null);\n" ).generate(sink, attributes::unused, *context); } diff --git a/src/bin/eolian_mono/eolian/mono/function_definition.hh b/src/bin/eolian_mono/eolian/mono/function_definition.hh --- a/src/bin/eolian_mono/eolian/mono/function_definition.hh +++ b/src/bin/eolian_mono/eolian/mono/function_definition.hh @@ -245,12 +245,12 @@ (documentation(2)).generate(sink, f, context)) return false; - std::string self = "this.NativeHandle"; + std::string self = "((Efl.Eo.IWrapper)this).NativeHandle"; // IsGeneratedBindingClass is set in the constructor, true if this // instance is from a pure C# class (not generated). if (do_super && !f.is_static) - self = "(IsGeneratedBindingClass ? " + self + " : Efl.Eo.Globals.Super(" + self + ", this.NativeClass))"; + self = "(IsGeneratedBindingClass ? " + self + " : Efl.Eo.Globals.Super(" + self + ", ((Efl.Eo.IWrapper)this).NativeClass))"; else if (f.is_static) self = ""; diff --git a/src/bin/eolian_mono/eolian/mono/klass.hh b/src/bin/eolian_mono/eolian/mono/klass.hh --- a/src/bin/eolian_mono/eolian/mono/klass.hh +++ b/src/bin/eolian_mono/eolian/mono/klass.hh @@ -246,6 +246,7 @@ << " " << name_helpers::klass_concrete_name(cls) << " : " << (klass_full_concrete_or_interface_name % ",") // classes << (root ? "Efl.Eo.EoWrapper" : "") // ... or root + << ", Efl.Eo.IWrapper" << (inherit_interfaces.empty() ? "" : ", ") << (klass_full_concrete_or_interface_name % ", ") // interfaces << "\n" << scope_tab << "{\n" @@ -508,7 +509,7 @@ if(!as_generator( scope_tab(2) << "/// Pointer to the native class description.\n" - << scope_tab(2) << "public override System.IntPtr NativeClass\n" + << scope_tab(2) << "System.IntPtr Efl.Eo.IWrapper.NativeClass\n" << scope_tab(2) << "{\n" << scope_tab(2) << scope_tab << "get\n" << scope_tab(2) << scope_tab << "{\n" diff --git a/src/bin/eolian_mono/eolian/mono/struct_definition.hh b/src/bin/eolian_mono/eolian/mono/struct_definition.hh --- a/src/bin/eolian_mono/eolian/mono/struct_definition.hh +++ b/src/bin/eolian_mono/eolian/mono/struct_definition.hh @@ -65,7 +65,7 @@ if (klass) { if (!as_generator( - indent << scope_tab << scope_tab << "_internal_struct." << string << " = _external_struct." << string << "?.NativeHandle ?? System.IntPtr.Zero;\n") + indent << scope_tab << scope_tab << "_internal_struct." << string << " = ((Efl.Eo.IWrapper)_external_struct." << string << ")?.NativeHandle ?? System.IntPtr.Zero;\n") .generate(sink, std::make_tuple(field_name, field_name), context)) return false; } diff --git a/src/bin/eolian_mono/eolian/mono/struct_fields.hh b/src/bin/eolian_mono/eolian/mono/struct_fields.hh --- a/src/bin/eolian_mono/eolian/mono/struct_fields.hh +++ b/src/bin/eolian_mono/eolian/mono/struct_fields.hh @@ -78,7 +78,7 @@ if (klass) { if (!as_generator( - "this." << string << " = " << string << "?.NativeHandle ?? System.IntPtr.Zero;\n") + "this." << string << " = ((Efl.Eo.IWrapper)" << string << ")?.NativeHandle ?? System.IntPtr.Zero;\n") .generate(sink, std::make_tuple(field_name, field_name), context)) return false; } diff --git a/src/bindings/mono/eina_mono/eina_promises.cs b/src/bindings/mono/eina_mono/eina_promises.cs --- a/src/bindings/mono/eina_mono/eina_promises.cs +++ b/src/bindings/mono/eina_mono/eina_promises.cs @@ -112,7 +112,7 @@ Efl.Loop loop = Efl.App.AppMain; // Should we be able to pass different schedulers? - IntPtr scheduler = efl_loop_future_scheduler_get(loop.NativeHandle); + IntPtr scheduler = efl_loop_future_scheduler_get(((Efl.Eo.IWrapper)loop).NativeHandle); IntPtr cb_data = IntPtr.Zero; diff --git a/src/bindings/mono/eina_mono/eina_value.cs b/src/bindings/mono/eina_mono/eina_value.cs --- a/src/bindings/mono/eina_mono/eina_value.cs +++ b/src/bindings/mono/eina_mono/eina_value.cs @@ -2337,7 +2337,7 @@ /// Returns the native handle wrapped by this object. /// The native pointer wrapped by this object. - public IntPtr NativeHandle + internal IntPtr NativeHandle { get { @@ -2791,12 +2791,12 @@ if (this.Optional) { - IntPtr ptr = value.NativeHandle; + IntPtr ptr = ((Efl.Eo.IWrapper)value).NativeHandle; return eina_value_optional_pset(this.Handle, ValueTypeBridge.GetNative(ValueType.Object), ref ptr); } - return eina_value_set_wrapper_ptr(this.Handle, value.NativeHandle); + return eina_value_set_wrapper_ptr(this.Handle, ((Efl.Eo.IWrapper)value).NativeHandle); } /// Stores the given value into this value. This value's must @@ -3470,7 +3470,7 @@ case ValueType.Object: { var x = (Efl.Object) o; - return eina_value_container_append_wrapper_ptr(this.Handle, x.NativeHandle); + return eina_value_container_append_wrapper_ptr(this.Handle, ((Efl.Eo.IWrapper)x).NativeHandle); } } @@ -3561,7 +3561,7 @@ case ValueType.Object: { var x = (Efl.Object) o; - return eina_value_container_insert_wrapper_ptr(this.Handle, p, x.NativeHandle); + return eina_value_container_insert_wrapper_ptr(this.Handle, p, ((Efl.Eo.IWrapper)x).NativeHandle); } } @@ -3771,7 +3771,7 @@ case ValueType.Object: { Efl.Object x = (Efl.Object)value; - eina_value_container_set_wrapper_ptr(this.Handle, i, x.NativeHandle); + eina_value_container_set_wrapper_ptr(this.Handle, i, ((Efl.Eo.IWrapper)x).NativeHandle); break; } } diff --git a/src/bindings/mono/eo_mono/EoWrapper.cs b/src/bindings/mono/eo_mono/EoWrapper.cs --- a/src/bindings/mono/eo_mono/EoWrapper.cs +++ b/src/bindings/mono/eo_mono/EoWrapper.cs @@ -51,9 +51,6 @@ /// one must create a constructor with this signature and calls this base constructor from it. /// This constructor will take care of calling base constructors of the native classes and /// perform additional setup so objects are ready to use. - /// It is advisable to check for the property in the top level - /// constructor and signal an error when it has a value of IntPtr.Zero after this - /// constructor completion. /// Warning: Do not use this constructor directly from a `new` statement. /// Since EFL 1.23. /// @@ -112,7 +109,7 @@ System.IntPtr parent_ptr = System.IntPtr.Zero; if (parent != null) { - parent_ptr = parent.NativeHandle; + parent_ptr = ((Efl.Eo.IWrapper)parent).NativeHandle; } if (generated) @@ -149,7 +146,7 @@ /// Pointer to the native instance. /// Since EFL 1.23. /// - public System.IntPtr NativeHandle + System.IntPtr IWrapper.NativeHandle { get { return handle; } } @@ -157,7 +154,7 @@ /// Pointer to the native class description. /// Since EFL 1.23. /// - public abstract System.IntPtr NativeClass + System.IntPtr IWrapper.NativeClass { get; } @@ -374,7 +371,7 @@ if (desc == IntPtr.Zero) throw new ArgumentException($"Failed to get native event {key}", "key"); - Efl.Eo.Globals.CallEventCallback(NativeHandle, desc, eventInfo); + Efl.Eo.Globals.CallEventCallback(((Efl.Eo.IWrapper)this).NativeHandle, desc, eventInfo); } finally { diff --git a/src/bindings/mono/eo_mono/iwrapper.cs b/src/bindings/mono/eo_mono/iwrapper.cs --- a/src/bindings/mono/eo_mono/iwrapper.cs +++ b/src/bindings/mono/eo_mono/iwrapper.cs @@ -1066,12 +1066,18 @@ public interface IWrapper { /// Pointer to internal Eo instance. +#if ! __MonoCS__ + internal +#endif IntPtr NativeHandle { get; } /// Pointer to internal Eo class. +#if ! __MonoCS__ + internal +#endif IntPtr NativeClass { get; diff --git a/src/bindings/mono/eo_mono/workaround.cs b/src/bindings/mono/eo_mono/workaround.cs --- a/src/bindings/mono/eo_mono/workaround.cs +++ b/src/bindings/mono/eo_mono/workaround.cs @@ -207,7 +207,7 @@ Efl.EventDescription desc = default(Efl.EventDescription), System.IntPtr info = default(System.IntPtr)) { - this.obj = obj?.NativeHandle ?? System.IntPtr.Zero; + this.obj = ((Efl.Eo.IWrapper)obj)?.NativeHandle ?? System.IntPtr.Zero; this.desc = Eina.PrimitiveConversion.ManagedToPointerAlloc(desc); this.info = info; } diff --git a/src/tests/efl_mono/Eina.cs b/src/tests/efl_mono/Eina.cs --- a/src/tests/efl_mono/Eina.cs +++ b/src/tests/efl_mono/Eina.cs @@ -578,7 +578,7 @@ var o = new Dummy.Numberwrapper(); o.Number = 88; Test.Assert(a.Push(o)); - Test.Assert(a[0].NativeHandle == o.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)a[0]).NativeHandle == ((Efl.Eo.IWrapper)o).NativeHandle); Test.Assert(a[0].Number == 88); o.Dispose(); a.Dispose(); @@ -622,7 +622,7 @@ o.Number = 88; Test.Assert(a.Push(o)); var p = a.Pop(); - Test.Assert(p.NativeHandle == o.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)p).NativeHandle == ((Efl.Eo.IWrapper)o).NativeHandle); Test.Assert(p.Number == 88); Test.Assert(a.Count() == 0); o.Dispose(); @@ -677,21 +677,21 @@ o1.Number = 88; Test.Assert(a.Push(o1)); - Test.Assert(a[0].NativeHandle == o1.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)a[0]).NativeHandle == ((Efl.Eo.IWrapper)o1).NativeHandle); Test.Assert(a[0].Number == 88); var o2 = new Dummy.Numberwrapper(); o2.Number = 44; a.DataSet(0, o2); - Test.Assert(a[0].NativeHandle == o2.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)a[0]).NativeHandle == ((Efl.Eo.IWrapper)o2).NativeHandle); Test.Assert(a[0].Number == 44); var o3 = new Dummy.Numberwrapper(); o3.Number = 22; a[0] = o3; - Test.Assert(a[0].NativeHandle == o3.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)a[0]).NativeHandle == ((Efl.Eo.IWrapper)o3).NativeHandle); Test.Assert(a[0].Number == 22); o3.Dispose(); o2.Dispose(); @@ -760,21 +760,21 @@ var o1 = new Dummy.Numberwrapper(); o1.Number = 88; Test.Assert(a.Push(o1)); - Test.Assert(a[0].NativeHandle == o1.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)a[0]).NativeHandle == ((Efl.Eo.IWrapper)o1).NativeHandle); Test.Assert(a[0].Number == 88); Test.Assert(a.Count() == 1); var o2 = new Dummy.Numberwrapper(); o2.Number = 44; Test.Assert(a.Push(o2)); - Test.Assert(a[1].NativeHandle == o2.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)a[1]).NativeHandle == ((Efl.Eo.IWrapper)o2).NativeHandle); Test.Assert(a[1].Number == 44); Test.Assert(a.Count() == 2); var o3 = new Dummy.Numberwrapper(); o3.Number = 22; Test.Assert(a.Push(o3)); - Test.Assert(a[2].NativeHandle == o3.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)a[2]).NativeHandle == ((Efl.Eo.IWrapper)o3).NativeHandle); Test.Assert(a[2].Number == 22); Test.Assert(a.Count() == 3); @@ -906,7 +906,7 @@ foreach (Dummy.Numberwrapper e in arr) { Test.AssertEquals(cmp[i].Number, e.Number); - Test.Assert(cmp[i].NativeHandle == e.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)cmp[i]).NativeHandle == ((Efl.Eo.IWrapper)e).NativeHandle); ++i; } arr.Dispose(); @@ -1202,8 +1202,8 @@ int len = a.Count; for (int i=0; i < len; ++i) { - Test.Assert(a[i].NativeHandle == b[i].NativeHandle); - Test.Assert(a[i].NativeHandle == cmp[i].NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)a[i]).NativeHandle == ((Efl.Eo.IWrapper)b[i]).NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)a[i]).NativeHandle == ((Efl.Eo.IWrapper)cmp[i]).NativeHandle); } a.Dispose(); t.Dispose(); @@ -1249,7 +1249,7 @@ var o = new Dummy.Numberwrapper(); o.Number = 88; Test.Assert(a.Push(o) == 0); - Test.Assert(a[0].NativeHandle == o.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)a[0]).NativeHandle == ((Efl.Eo.IWrapper)o).NativeHandle); Test.Assert(a[0].Number == 88); o.Dispose(); a.Dispose(); @@ -1283,7 +1283,7 @@ o.Number = 88; Test.Assert(a.Push(o) >= 0); var p = a.Pop(); - Test.Assert(p.NativeHandle == o.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)p).NativeHandle == ((Efl.Eo.IWrapper)o).NativeHandle); Test.Assert(p.Number == 88); Test.Assert(a.Count() == 0); o.Dispose(); @@ -1329,14 +1329,14 @@ o1.Number = 88; Test.Assert(a.Push(o1) >= 0); - Test.Assert(a[0].NativeHandle == o1.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)a[0]).NativeHandle == ((Efl.Eo.IWrapper)o1).NativeHandle); Test.Assert(a[0].Number == 88); var o2 = new Dummy.Numberwrapper(); o2.Number = 44; a.ReplaceAt(0, o2); - Test.Assert(a[0].NativeHandle == o2.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)a[0]).NativeHandle == ((Efl.Eo.IWrapper)o2).NativeHandle); Test.Assert(a[0].Number == 44); Test.Assert(a.Count() == 1); @@ -1344,7 +1344,7 @@ o3.Number = 22; a[0] = o3; - Test.Assert(a[0].NativeHandle == o3.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)a[0]).NativeHandle == ((Efl.Eo.IWrapper)o3).NativeHandle); Test.Assert(a[0].Number == 22); Test.Assert(a.Count() == 1); @@ -1398,21 +1398,21 @@ var o1 = new Dummy.Numberwrapper(); o1.Number = 88; Test.Assert(a.Push(o1) == 0); - Test.Assert(a[0].NativeHandle == o1.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)a[0]).NativeHandle == ((Efl.Eo.IWrapper)o1).NativeHandle); Test.Assert(a[0].Number == 88); Test.Assert(a.Count() == 1); var o2 = new Dummy.Numberwrapper(); o2.Number = 44; Test.Assert(a.Push(o2) == 1); - Test.Assert(a[1].NativeHandle == o2.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)a[1]).NativeHandle == ((Efl.Eo.IWrapper)o2).NativeHandle); Test.Assert(a[1].Number == 44); Test.Assert(a.Count() == 2); var o3 = new Dummy.Numberwrapper(); o3.Number = 22; Test.Assert(a.Push(o3) == 2); - Test.Assert(a[2].NativeHandle == o3.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)a[2]).NativeHandle == ((Efl.Eo.IWrapper)o3).NativeHandle); Test.Assert(a[2].Number == 22); Test.Assert(a.Count() == 3); @@ -1510,7 +1510,7 @@ foreach (Dummy.Numberwrapper e in arr) { Test.AssertEquals(cmp[i].Number, e.Number); - Test.Assert(cmp[i].NativeHandle == e.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)cmp[i]).NativeHandle == ((Efl.Eo.IWrapper)e).NativeHandle); ++i; } arr.Dispose(); @@ -1574,21 +1574,21 @@ o1.Number = 88; lst.Append(o1); - Test.Assert(lst[0].NativeHandle == o1.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)lst[0]).NativeHandle == ((Efl.Eo.IWrapper)o1).NativeHandle); Test.Assert(lst[0].Number == 88); var o2 = new Dummy.Numberwrapper(); o2.Number = 44; lst.DataSet(0, o2); - Test.Assert(lst[0].NativeHandle == o2.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)lst[0]).NativeHandle == ((Efl.Eo.IWrapper)o2).NativeHandle); Test.Assert(lst[0].Number == 44); var o3 = new Dummy.Numberwrapper(); o3.Number = 22; lst[0] = o3; - Test.Assert(lst[0].NativeHandle == o3.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)lst[0]).NativeHandle == ((Efl.Eo.IWrapper)o3).NativeHandle); Test.Assert(lst[0].Number == 22); o3.Dispose(); o2.Dispose(); @@ -1653,21 +1653,21 @@ var o1 = new Dummy.Numberwrapper(); o1.Number = 88; lst.Append(o1); - Test.Assert(lst[0].NativeHandle == o1.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)lst[0]).NativeHandle == ((Efl.Eo.IWrapper)o1).NativeHandle); Test.Assert(lst[0].Number == 88); Test.Assert(lst.Count() == 1); var o2 = new Dummy.Numberwrapper(); o2.Number = 44; lst.Append(o2); - Test.Assert(lst[1].NativeHandle == o2.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)lst[1]).NativeHandle == ((Efl.Eo.IWrapper)o2).NativeHandle); Test.Assert(lst[1].Number == 44); Test.Assert(lst.Count() == 2); var o3 = new Dummy.Numberwrapper(); o3.Number = 22; lst.Append(o3); - Test.Assert(lst[2].NativeHandle == o3.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)lst[2]).NativeHandle == ((Efl.Eo.IWrapper)o3).NativeHandle); Test.Assert(lst[2].Number == 22); Test.Assert(lst.Count() == 3); o3.Dispose(); @@ -1781,21 +1781,21 @@ var o1 = new Dummy.Numberwrapper(); o1.Number = 88; lst.Prepend(o1); - Test.Assert(lst[0].NativeHandle == o1.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)lst[0]).NativeHandle == ((Efl.Eo.IWrapper)o1).NativeHandle); Test.Assert(lst[0].Number == 88); Test.Assert(lst.Count() == 1); var o2 = new Dummy.Numberwrapper(); o2.Number = 44; lst.Prepend(o2); - Test.Assert(lst[0].NativeHandle == o2.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)lst[0]).NativeHandle == ((Efl.Eo.IWrapper)o2).NativeHandle); Test.Assert(lst[0].Number == 44); Test.Assert(lst.Count() == 2); var o3 = new Dummy.Numberwrapper(); o3.Number = 22; lst.Prepend(o3); - Test.Assert(lst[0].NativeHandle == o3.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)lst[0]).NativeHandle == ((Efl.Eo.IWrapper)o3).NativeHandle); Test.Assert(lst[0].Number == 22); Test.Assert(lst.Count() == 3); @@ -2039,7 +2039,7 @@ foreach (Dummy.Numberwrapper e in lst) { Test.AssertEquals(cmp[i].Number, e.Number); - Test.Assert(cmp[i].NativeHandle == e.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)cmp[i]).NativeHandle == ((Efl.Eo.IWrapper)e).NativeHandle); ++i; } lst.Dispose(); @@ -2324,8 +2324,8 @@ int len = a.Count; for (int i=0; i < len; ++i) { - Test.Assert(a[i].NativeHandle == b[i].NativeHandle); - Test.Assert(a[i].NativeHandle == cmp[i].NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)a[i]).NativeHandle == ((Efl.Eo.IWrapper)b[i]).NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)a[i]).NativeHandle == ((Efl.Eo.IWrapper)cmp[i]).NativeHandle); } a.Dispose(); t.Dispose(); @@ -2369,21 +2369,21 @@ o1.Number = 88; lst.Append(o1); - Test.Assert(lst[0].NativeHandle == o1.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)lst[0]).NativeHandle == ((Efl.Eo.IWrapper)o1).NativeHandle); Test.Assert(lst[0].Number == 88); var o2 = new Dummy.Numberwrapper(); o2.Number = 44; lst.DataSet(0, o2); - Test.Assert(lst[0].NativeHandle == o2.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)lst[0]).NativeHandle == ((Efl.Eo.IWrapper)o2).NativeHandle); Test.Assert(lst[0].Number == 44); var o3 = new Dummy.Numberwrapper(); o3.Number = 22; lst[0] = o3; - Test.Assert(lst[0].NativeHandle == o3.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)lst[0]).NativeHandle == ((Efl.Eo.IWrapper)o3).NativeHandle); Test.Assert(lst[0].Number == 22); Test.Assert(lst.Count() == 1); @@ -2434,21 +2434,21 @@ var o1 = new Dummy.Numberwrapper(); o1.Number = 88; lst.Append(o1); - Test.Assert(lst[0].NativeHandle == o1.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)lst[0]).NativeHandle == ((Efl.Eo.IWrapper)o1).NativeHandle); Test.Assert(lst[0].Number == 88); Test.Assert(lst.Count() == 1); var o2 = new Dummy.Numberwrapper(); o2.Number = 44; lst.Append(o2); - Test.Assert(lst[1].NativeHandle == o2.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)lst[1]).NativeHandle == ((Efl.Eo.IWrapper)o2).NativeHandle); Test.Assert(lst[1].Number == 44); Test.Assert(lst.Count() == 2); var o3 = new Dummy.Numberwrapper(); o3.Number = 22; lst.Append(o3); - Test.Assert(lst[2].NativeHandle == o3.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)lst[2]).NativeHandle == ((Efl.Eo.IWrapper)o3).NativeHandle); Test.Assert(lst[2].Number == 22); Test.Assert(lst.Count() == 3); o3.Dispose(); @@ -2530,21 +2530,21 @@ var o1 = new Dummy.Numberwrapper(); o1.Number = 88; lst.Prepend(o1); - Test.Assert(lst[0].NativeHandle == o1.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)lst[0]).NativeHandle == ((Efl.Eo.IWrapper)o1).NativeHandle); Test.Assert(lst[0].Number == 88); Test.Assert(lst.Count() == 1); var o2 = new Dummy.Numberwrapper(); o2.Number = 44; lst.Prepend(o2); - Test.Assert(lst[0].NativeHandle == o2.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)lst[0]).NativeHandle == ((Efl.Eo.IWrapper)o2).NativeHandle); Test.Assert(lst[0].Number == 44); Test.Assert(lst.Count() == 2); var o3 = new Dummy.Numberwrapper(); o3.Number = 22; lst.Prepend(o3); - Test.Assert(lst[0].NativeHandle == o3.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)lst[0]).NativeHandle == ((Efl.Eo.IWrapper)o3).NativeHandle); Test.Assert(lst[0].Number == 22); Test.Assert(lst.Count() == 3); o3.Dispose(); @@ -2604,7 +2604,7 @@ foreach (Dummy.Numberwrapper e in lst) { Test.AssertEquals(cmp[i].Number, e.Number); - Test.Assert(cmp[i].NativeHandle == e.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)cmp[i]).NativeHandle == ((Efl.Eo.IWrapper)e).NativeHandle); ++i; } lst.Dispose(); @@ -2689,17 +2689,17 @@ var cc = NW(888); hsh[a] = aa; - Test.Assert(hsh[a].NativeHandle == aa.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)hsh[a]).NativeHandle == ((Efl.Eo.IWrapper)aa).NativeHandle); Test.Assert(hsh[a].Number == aa.Number); Test.Assert(hsh.Count == 1); hsh[b] = bb; - Test.Assert(hsh[b].NativeHandle == bb.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)hsh[b]).NativeHandle == ((Efl.Eo.IWrapper)bb).NativeHandle); Test.Assert(hsh[b].Number == bb.Number); Test.Assert(hsh.Count == 2); hsh[c] = cc; - Test.Assert(hsh[c].NativeHandle == cc.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)hsh[c]).NativeHandle == ((Efl.Eo.IWrapper)cc).NativeHandle); Test.Assert(hsh[c].Number == cc.Number); Test.Assert(hsh.Count == 3); @@ -2818,7 +2818,7 @@ foreach (KeyValuePair kvp in hsh) { - Test.Assert(dct[kvp.Key.Number].NativeHandle == kvp.Value.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)dct[kvp.Key.Number]).NativeHandle == ((Efl.Eo.IWrapper)kvp.Value).NativeHandle); Test.Assert(dct[kvp.Key.Number].Number == kvp.Value.Number); dct.Remove(kvp.Key.Number); ++count; @@ -3120,10 +3120,10 @@ Dummy.Numberwrapper nwv2; Test.Assert(t.EinaHashObjIn(hsh, nwk1, nwv1, out nwk2, out nwv2)); Test.Assert(hsh.Own); - Test.Assert(hsh[nwk1].NativeHandle == nwv1.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)hsh[nwk1]).NativeHandle == ((Efl.Eo.IWrapper)nwv1).NativeHandle); Test.Assert(hsh[nwk1].Number == nwv1.Number); Test.Assert(hsh[nwk1].Number == 222); - Test.Assert(hsh[nwk2].NativeHandle == nwv2.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)hsh[nwk2]).NativeHandle == ((Efl.Eo.IWrapper)nwv2).NativeHandle); Test.Assert(hsh[nwk2].Number == nwv2.Number); Test.Assert(hsh[nwk2].Number == 444); nwk1.Dispose(); @@ -3146,10 +3146,10 @@ Dummy.Numberwrapper nwv2; Test.Assert(t.EinaHashObjInOwn(hsh, nwk1, nwv1, out nwk2, out nwv2)); Test.Assert(!hsh.Own); - Test.Assert(hsh[nwk1].NativeHandle == nwv1.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)hsh[nwk1]).NativeHandle == ((Efl.Eo.IWrapper)nwv1).NativeHandle); Test.Assert(hsh[nwk1].Number == nwv1.Number); Test.Assert(hsh[nwk1].Number == 222); - Test.Assert(hsh[nwk2].NativeHandle == nwv2.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)hsh[nwk2]).NativeHandle == ((Efl.Eo.IWrapper)nwv2).NativeHandle); Test.Assert(hsh[nwk2].Number == nwv2.Number); Test.Assert(hsh[nwk2].Number == 444); hsh.Dispose(); @@ -3170,7 +3170,7 @@ Dummy.Numberwrapper nwv1; Test.Assert(t.EinaHashObjOut(out hsh, out nwk1, out nwv1)); Test.Assert(!hsh.Own); - Test.Assert(hsh[nwk1].NativeHandle == nwv1.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)hsh[nwk1]).NativeHandle == ((Efl.Eo.IWrapper)nwv1).NativeHandle); Test.Assert(hsh[nwk1].Number == nwv1.Number); Test.Assert(hsh[nwk1].Number == 222); Dummy.Numberwrapper nwk2 = NW(44); @@ -3194,7 +3194,7 @@ Dummy.Numberwrapper nwv1; Test.Assert(t.EinaHashObjOutOwn(out hsh, out nwk1, out nwv1)); Test.Assert(hsh.Own); - Test.Assert(hsh[nwk1].NativeHandle == nwv1.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)hsh[nwk1]).NativeHandle == ((Efl.Eo.IWrapper)nwv1).NativeHandle); Test.Assert(hsh[nwk1].Number == nwv1.Number); Test.Assert(hsh[nwk1].Number == 222); Dummy.Numberwrapper nwk2 = NW(44); @@ -3217,7 +3217,7 @@ Dummy.Numberwrapper nwv1; var hsh = t.EinaHashObjReturn(out nwk1, out nwv1); Test.Assert(!hsh.Own); - Test.Assert(hsh[nwk1].NativeHandle == nwv1.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)hsh[nwk1]).NativeHandle == ((Efl.Eo.IWrapper)nwv1).NativeHandle); Test.Assert(hsh[nwk1].Number == nwv1.Number); Test.Assert(hsh[nwk1].Number == 222); Dummy.Numberwrapper nwk2 = NW(44); @@ -3240,7 +3240,7 @@ Dummy.Numberwrapper nwv1; var hsh = t.EinaHashObjReturnOwn(out nwk1, out nwv1); Test.Assert(hsh.Own); - Test.Assert(hsh[nwk1].NativeHandle == nwv1.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)hsh[nwk1]).NativeHandle == ((Efl.Eo.IWrapper)nwv1).NativeHandle); Test.Assert(hsh[nwk1].Number == nwv1.Number); Test.Assert(hsh[nwk1].Number == 222); Dummy.Numberwrapper nwk2 = NW(44); @@ -3394,7 +3394,7 @@ int idx = 0; foreach (Dummy.Numberwrapper e in itr) { - Test.Assert(e.NativeHandle == base_objs[idx].NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)e).NativeHandle == ((Efl.Eo.IWrapper)base_objs[idx]).NativeHandle); Test.Assert(e.Number == base_objs[idx].Number); ++idx; } @@ -3560,7 +3560,7 @@ int idx = 0; foreach (Dummy.Numberwrapper e in itr) { - Test.Assert(e.NativeHandle == base_objs[idx].NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)e).NativeHandle == ((Efl.Eo.IWrapper)base_objs[idx]).NativeHandle); Test.Assert(e.Number == base_objs[idx].Number); ++idx; } @@ -3913,7 +3913,7 @@ foreach (Dummy.Numberwrapper e in itr) { Test.Assert(dct[e.Number] != null); - Test.Assert(dct[e.Number].NativeHandle == e.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)dct[e.Number]).NativeHandle == ((Efl.Eo.IWrapper)e).NativeHandle); Test.Assert(dct[e.Number].Number == e.Number); dct.Remove(e.Number); ++idx; @@ -3949,7 +3949,7 @@ foreach (Dummy.Numberwrapper e in itr) { Test.Assert(dct[e.Number] != null); - Test.Assert(dct[e.Number].NativeHandle == e.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)dct[e.Number]).NativeHandle == ((Efl.Eo.IWrapper)e).NativeHandle); Test.Assert(dct[e.Number].Number == e.Number); dct.Remove(e.Number); ++idx; diff --git a/src/tests/efl_mono/Eo.cs b/src/tests/efl_mono/Eo.cs --- a/src/tests/efl_mono/Eo.cs +++ b/src/tests/efl_mono/Eo.cs @@ -39,11 +39,11 @@ { var testing = new Dummy.TestObject(); var o1 = testing.ReturnObject(); - Test.Assert(o1.NativeHandle != IntPtr.Zero); - Test.Assert(o1.NativeHandle == testing.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)o1).NativeHandle != IntPtr.Zero); + Test.Assert(((Efl.Eo.IWrapper)o1).NativeHandle == ((Efl.Eo.IWrapper)testing).NativeHandle); var o2 = o1.ReturnObject(); - Test.Assert(o2.NativeHandle != IntPtr.Zero); - Test.Assert(o2.NativeHandle == o1.NativeHandle); + Test.Assert(((Efl.Eo.IWrapper)o2).NativeHandle != IntPtr.Zero); + Test.Assert(((Efl.Eo.IWrapper)o2).NativeHandle == ((Efl.Eo.IWrapper)o1).NativeHandle); testing.Dispose(); } /* Commented out as adding the event listener seems to prevent it from being GC'd. @@ -123,7 +123,7 @@ public static void instantiate_inherited() { Efl.Object loop = new MyObject(); - Test.Assert(loop.NativeHandle != System.IntPtr.Zero); + Test.Assert(((Efl.Eo.IWrapper)loop).NativeHandle != System.IntPtr.Zero); loop.Dispose(); }