efl-mono: Fix calling non-static methods with garbage collectable NativeInherits
authorFelipe Magno de Almeida <felipe@expertisesolutions.com.br>
Fri, 18 Jan 2019 09:37:26 +0000 (09:37 +0000)
committerJunsuChoi <jsuya.choi@samsung.com>
Thu, 24 Jan 2019 05:20:18 +0000 (14:20 +0900)
This fixes intermittent errors in C# classes with inheritance from Eo,
just like a lot of unit tests.

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D7683

src/bin/eolian_mono/eolian/mono/function_definition.hh

index 6917870074180e92af8f2c670ca8bad6559016f4..5a78bc735f4d501de6e9721da35f72e7b838584e 100644 (file)
@@ -79,7 +79,7 @@ struct native_function_definition_generator
 
     if(!as_generator
        (scope_tab
-        << " private "
+        << " private static "
         << eolian_mono::marshall_type(true) << " "
         << string
         << "(System.IntPtr obj, System.IntPtr pd"
@@ -102,7 +102,7 @@ struct native_function_definition_generator
         << eolian_mono::native_function_definition_epilogue(*klass)
         << scope_tab << scope_tab << "} else {\n"
         << scope_tab << scope_tab << scope_tab << (return_type != " void" ? "return " : "") << string
-        << "(Efl.Eo.Globals.efl_super(obj, " << "GetEflClass())" << *(", " << argument) << ");\n"
+        << "(Efl.Eo.Globals.efl_super(obj, " << "Efl.Eo.Globals.efl_class_get(obj))" << *(", " << argument) << ");\n"
         << scope_tab << scope_tab << "}\n"
         << scope_tab << "}\n"
        )