Patch for oafd_CORBA_Context_get_value
- From: Bradford Hovinen <hovinen helixcode com>
- To: mjs eazel com
- Cc: gnome-components-list gnome org
- Subject: Patch for oafd_CORBA_Context_get_value
- Date: Fri, 6 Oct 2000 22:52:16 -0400 (EDT)
Greetings,
I was having some trouble with OAF -- it was setting the DISPLAY
environment variable on launched components incorrectly. I tracked the
problem down to a call to CORBA_Context_get_values. Rather than returning
an array of just the DISPLAY environment variable as expected, it was
returning an array of two values: the first was the username and the
second was the display. oafd_CORBA_Context_get_value was naively returning
just the first value in the array, and hence my display was getting set to
"hovinen" rather than ":0".
The patch I have attached fixes the problem by adding a loop that checks
the name field of each returned array element against the propname
parameter, returning only the correct value. It fixed the problem for me.
--
-Bradford Hovinen
"If the fool would persist in his folly he would become wise."
- William Blake, "Proverbs of Hell," 1793
Index: oafd/oafd-corba-extensions.c
===================================================================
RCS file: /cvs/gnome/oaf/oafd/oafd-corba-extensions.c,v
retrieving revision 1.3
diff -u -r1.3 oafd-corba-extensions.c
--- oafd/oafd-corba-extensions.c 2000/09/25 23:36:54 1.3
+++ oafd/oafd-corba-extensions.c 2000/10/07 02:39:44
@@ -51,10 +51,16 @@
if (ev->_major == CORBA_NO_EXCEPTION) {
if (nvout->list->len > 0) {
CORBA_NamedValue *nv;
+ int i;
- nv = &g_array_index (nvout->list, CORBA_NamedValue, 0);
+ for (i = 0; i < nvout->list->len; i++) {
+ nv = &g_array_index (nvout->list,
+ CORBA_NamedValue, i);
+ if (!strcmp (nv->name, propname)) break;
+ }
- retval = g_strdup (*(char **) nv->argument._value);
+ if (i < nvout->list->len)
+ retval = g_strdup (*(char **) nv->argument._value);
}
CORBA_NVList_free (nvout, &local_ev);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]