bonobo issues.



Hi Miguel,

	Reading through bits of bonobo, I see a couple of things I 
think need soon; let me know what you think:

	* create bonobo_object_client_ref / unref: to allow the
replacement of lines such as:

	Bonobo_Unknown_unref (bonobo_object_corba_objref (
		BONOBO_OBJECT (client_site->bound_object)), &ev);


	* It seems people are assuming that they have a certain
view of a Bonobo Object ie. in several places we have:

	Bonobo_Embeddable_set_client_site (
		bonobo_object_corba_objref (BONOBO_OBJECT (object)),
		bonobo_object_corba_objref (BONOBO_OBJECT (client_site)),
		&ev);

	Which is fine; iff someone happened to pass object into the
object client via. the Embeddable I/F. Unfortunately this is by no
means garenteed, and thus a load of tedious code has to be inserted,
including a new variable:

	corba_object = bonobo_object_client_query_interface (
		object, "IDL:Bonobo/Embeddable:1.0", NULL);

	if (corba_object == CORBA_OBJECT_NIL) {
		CORBA_exception_free (&ev);
		return FALSE;
	}

	I would prefer in many ways to encapsulate this into a single
object client function:

	CORBA_Object 
	bonobo_object_client_if (BonoboObjectClient *object_client,
				 const char *interface);

	so we can do:

	Bonobo_Embeddable_set_client_site (
		bonobo_object_client_if (object,
"IDL:Bonobo/Embeddable:1.0"),
		bonobo_object_corba_objref (BONOBO_OBJECT (client_site)),
		&ev);

	etc.

	I see this assumption happening all over the code, and the
more I look, the more frightening it is, ie. the net result is that
I suspect a large chunk is working because people just happen to pass
in a friendly view of the object.

	Regards,

		Michael.

-- 
 mmeeks@gnu.org  <><, Pseudo Engineer, itinerant idiot





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