Re: [Vala] New params for [ModuleInit]



How ?! For this to work requires that the plugin registrar inherits from
TypeModule.

I quickly rewrote the example but it does not work:

$ valac --pkg=gmodule-2.0 --debug *.vala && ./main
main.vala:10.1-10.41: warning: unable to chain up to private base
constructor
public class PluginRegistrar : TypeModule
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Compilation succeeded - 1 warning(s)

(process:18546): GLib-GObject-CRITICAL **: g_object_newv: assertion
`G_TYPE_IS_OBJECT (object_type)' failed
Erreur de segmentation


And in a real application I have an error like:

g_type_plugin_* invalidly modified type


With the object creation.

2010/6/10 JM <interflug1 gmx net>

Hello Abderrahim
Thanks for reply!
I somehow got the error message in a wrong way, because I thought the
"[ModuleInit]" annotation itself needed some extra info.
Now it's working fine again.
Sorry for the hassle.
Regards
Jörn



Hi,

2010/6/10, JM <interflug1 gmx net>:
Hello everybody
 This valac commit shows that there has been some change with
 [ModuleInit]:

http://git.gnome.org/browse/vala/commit/?id=5fd7b8cebb983fccdebcd9329671d94c1e5cf826

 The example on http://live.gnome.org/Vala/TypeModules is showing an
 example exactly as I am using it in my application:

 [ModuleInit]
 public Type register_plugin (TypeModule module) {
    // types are registered automatically
    return typeof (MyPlugin);
 }

 Here, valac reports "error: [ModuleInit] requires a parameter of type
`GLib.TypeModule'
 public Type init_module() {"

I'm not sure I understand your problem, in the example register_plugin
takes a TypeModule as parameter but from what I see in the error
message, your init_module doesn't take any parameter, and that's what
valac is saying.


 Can someone please tell me what the expected usage of
 [ModuleInit] would be?

a [ModuleInit] function is called by the application when a plugin is
loaded. It should have at least a TypeModule argument so that the
plugin types can be registered dinamically. (It generally returns the
type of the main plugin class for the application to create an
instance, but that's not mandatory : the application can find it out
from e.g. the plugin description file if there is one).

HTH,
Abderrahim


_______________________________________________
vala-list mailing list
vala-list gnome org
http://mail.gnome.org/mailman/listinfo/vala-list




-- 
Nicolas Joseph

Attachment: module.tar.gz
Description: GNU Zip compressed data



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]