Re: OAF screwiness - design...



Hi Guys,

	Recently we changed the code in the BonoboEventSource / Listener
interface to track object referencing by unique ID instead of using
CORBA_Object_equivalent. This is due to ( what I view as extreme
brokenness ) inasmuch that CORBA_Object_equivalent is garenteed to return
false negatives in some circumstances.

	Fair enough, we make our interface ugly for CORBA's sake. Then I
see things like:

ac-corba.c (impl_OAF_ActivationContext_add_directory):

	for (cur = servant->dirs; cur; cur = cur->next) {
		ChildODInfo *child;
		child = cur->data;
		if (CORBA_Object_is_equivalent (dir, child->obj, ev)) {
			CORBA_exception_set (
				ev, CORBA_USER_EXCEPTION,
				ex_OAF_ActivationContext_AlreadyListed,
				NULL);
			return;
		}
	}

And:

od-corba.c (impl_OAF_ObjectDirectory_unregister):

	if (!g_hash_table_lookup_extended
	    (servant->active_servers, iid, (gpointer *) & orig_iid,
	     (gpointer *) & orig_obj)
	    || !CORBA_Object_is_equivalent (orig_obj, obj, ev))
		return;

etc.

	And I begin to wonder ( as I briefly look to see if Federico's oaf
bug is simple before badgering the maintainers ) what is is going on here.

	So; can someone please tell me - under precicely what
circumstances does CORBA_Object_is_equivalent fail [1], and ( having
stated that clearly ) whether this will ever impact Oaf / Bonobo ?

	Thanks,

		Michael.

[1] - ie. I keep asking this question and receive hand waving,
unsatisfying answers.

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





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