e-d-s pokeage ...

michael meeks <[email protected]>
Newsgroups gmane.comp.gnome.evolution.devel
Organization Novell, Inc.
Message-ID <[email protected]>
Hi there,

	So - I was pleased to see that the libebook .so remains unchanged from
evo 2.4 to 2.6 - and I just did a little review to try to ensure that
this indeed reflects an unchanged ABI ;-)

	It seems that is the case - which is great thanks - I need only to
update a comment in OO.o ;-) however, as with all reviews I happened on
some other things:

libebook:
	+ e-name-western.h: urgh not good practice
		+ do we really want to export this structure ?
		  surely an opaque type & accessors is ~always 
		  better ?

	+ e-name-western-tables.h:
		+ looks broken to me:
		* if you include this header it will instantiate
		  this large set of strings in each module / 
		  shlib.
		* all such lists of strings should prolly be
		  defined 'const' so we put them in a shared
		  linker section, to save memory.
		* I imagine the header should have
		  'extern const char *' and just the symbol names
		+ why is this installed anyway ? are there 
		  better ways to expose this ?

libedataserver/e-data-server-module.c
	+ you add:

-       module->library = g_module_open (module->path, 0);
+       module->library = g_module_open (module->path, G_MODULE_BIND_LAZY);

	in moving to 2.6 - which is some optimization; of course - it would be
rather better to use:

	(G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL)

	instead. What that does is ensure that the plugin is not included in
the search path for symbols for other plugins - ie. subsequent plugins
as they link don't have to search this plugin for symbols. Assuming your
plugins don't depend on each other to provide symbols [ pretty broken
IMHO ] this not only accelerates linking, but prolly helps avoid various
potential tangled linking problems.

	HTH & thanks for not breaking the ABI again :-)

	Regards,

		Michael.

-- 
 [email protected]  <><, Pseudo Engineer, itinerant idiot
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.