From: SourceForge.net <no...@so...> - 2008-08-04 19:44:47
|
Bugs item #2037626, was opened at 2008-08-04 10:15 Message generated for change (Comment added) made by bigrixx You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2037626&group_id=119701 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None >Group: v4.0 >Status: Pending >Resolution: Fixed Priority: 5 Private: No Submitted By: Jon Wolfers (sahananda) >Assigned to: Rick McGuire (bigrixx) Summary: OODialog 4.0.0 not populating attributes Initial Comment: I attach test code that demonstrates the problem. In 3.2.0 If you type into the combo box the text is respected after a self~getData. In 4.0.0 it is replaced by InternDlgData.10 Mark says he knows of this bug. Thanks, Jon ---------------------------------------------------------------------- >Comment By: Rick McGuire (bigrixx) Date: 2008-08-04 15:44 Message: Logged In: YES user_id=1125291 Originator: NO The variable pool interface was not implementing a symbolic set operation correctly. ---------------------------------------------------------------------- Comment By: Mark Miesfeld (miesfeld) Date: 2008-08-04 15:13 Message: Logged In: YES user_id=191588 Originator: NO Rick, I stepped through it slowly enough to see that the stem is getting set correctly in stem_table->setCompoundVariable(&resolved_tail, value) Internally in the interpreter the compound variable InternDlgData.10 does get set to TOM. But then back in the ooRexx / ooDialog code when it returns from the native API function call, ret = GetStemData(self~Adm, "InternDlgData."), the variable InternDlgData.10 has a value of INTERNDLGDATA.10 I wonder if things are in different contexts. I'll take up this discussion on the dev list, see if you have any tips. ---------------------------------------------------------------------- Comment By: Mark Miesfeld (miesfeld) Date: 2008-08-04 12:36 Message: Logged In: YES user_id=191588 Originator: NO Rick, This seems to be a problem in RexxActivation::setLocalCompoundVariable(), or lower, rather than ooDialog. I thought I'd just put some info in here if you want to take a look at it. It will probably take me some time to figure it out, if I even can. <grin> I stepped through it and did not see anything obvious. But I got a little lost down in the internals. In RexxActivation::setLocalCompoundVariable() at this point everything looks okay to me: (I'm working with Jon's test program.) stem_table->setCompoundVariable(&resolved_tail, value) The stem name is InternDlgData. and the tail is 10. The value to be set is 'TOM' So, all looks good here. When I step into setCompoundVariable(), then I get a little lost. But, it looks like it ends up setting the value of the resovled tail to "INTERNDLGDATA.10" rather than 'TOM' To take a look at this, use Jon's program. Set a breakpoint at line 795 in oovdata.cpp. Run, and when the dialog comes up type something in the combobox and press Add. I used TOM in the example above. When it breaks you are at this point in the code: sprintf(sname,"%s.%d",name,dlgAdm->DataTab[j].id); shvb.shvnext = NULL; shvb.shvname.strptr = sname; shvb.shvname.strlength = strlen(sname); shvb.shvnamelen = shvb.shvname.strlength; shvb.shvvalue.strptr = data; shvb.shvvalue.strlength = strlen(data); shvb.shvvaluelen = strlen(data); shvb.shvcode = RXSHV_SYSET; shvb.shvret = 0; if (RexxVariablePool(&shvb) == RXSHV_BADN) { Everything in the shvb struct seems set up correctly and what should happen is that InternDlgData.10 gets set to 'TOM'. If you're busy don't worry about it, I'll work on it some more later. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=2037626&group_id=119701 |