Darin Adler <darin bentspoon com> writes:
> There's a problem that causes an assert to fire when you run
> gconftool. I would like to find someone who understands the changes to
> ORBit who's willing to help me figure out a fix for it.
Hi Darin,
the problem is that you're calling PortableServer_POA_activate_object_by_id()
with an user-defined ObjectID on the RootPOA.
See ORBit2/src/orb/poa/poa.c (ORBit_POA_create_object):
/*
If USER_ID policy, {oid} must be non-NULL.
If SYSTEM_ID policy, {oid} must ether be NULL, or must have
been previously created by the POA. If the user passes in
a bogus oid under SYSTEM_ID, we will assert or segfault. This
is allowed by the CORBA spec.
*/
So if you look at gconf/gconf.c (gconfpostinit), you can either change
the PortableServer_POA_activate_object_with_id() into
PortableServer_POA_activate_object() or - if you really want to provide
your own ObjectId - you need to create your own POA with the USER_ID policy.
Here's a patch which should give you the idea how to do it:
Attachment:
diff
Description: Binary data
However, before we apply this patch, we need to find out whether gconf was providing a custom ObjectId at all, maybe because it was required by the old ORBit ? -- Martin Baulig martin gnome org (private) baulig suse de (work)