Index: CHANGES =================================================================== RCS file: /home/cvsroot/ice/CHANGES,v retrieving revision 1.245 diff -c -r1.245 CHANGES *** CHANGES 25 Nov 2004 04:18:31 -0000 1.245 --- CHANGES 2 Dec 2004 02:49:39 -0000 *************** *** 1,6 **** --- 1,10 ---- Changes since version 2.0.0 --------------------------- + - Fixed a bug in slice2cs and slice2vb: incorrect code was generated if + an interface was derived from a base interface in a different + module if the base interface contained a AMD operation. + - Changed IceUtil::GCShared to derive from IceUtil::Shared. (Previously, these two classes were unrelated.) This change allows servants to be derived from IceUtil::Thread, which was Index: src/slice2cs/Gen.cpp =================================================================== RCS file: /home/cvsroot/ice/src/slice2cs/Gen.cpp,v retrieving revision 1.64 diff -c -r1.64 Gen.cpp *** src/slice2cs/Gen.cpp 16 Nov 2004 01:54:22 -0000 1.64 --- src/slice2cs/Gen.cpp 2 Dec 2004 02:49:48 -0000 *************** *** 131,137 **** _out << sp << nl << "public void " << name << "_async" << spar << params << epar; _out << sb; ! _out << name << "_async" << spar << args << epar << ';'; _out << eb; _out << sp << nl << "public abstract void " << name << "_async" --- 131,137 ---- _out << sp << nl << "public void " << name << "_async" << spar << params << epar; _out << sb; ! _out << nl << name << "_async" << spar << args << epar << ';'; _out << eb; _out << sp << nl << "public abstract void " << name << "_async" *************** *** 685,691 **** string name = fixId(op->name()); ContainerPtr container = op->container(); ClassDefPtr cl = ClassDefPtr::dynamicCast(container); // Get the class containing the op. ! params.push_back((amd ? "AMD_" : "AMI_") + cl->name() + '_' + op->name() + " __cb"); ParamDeclList paramList = op->parameters(); for(ParamDeclList::const_iterator q = paramList.begin(); q != paramList.end(); ++q) --- 685,692 ---- string name = fixId(op->name()); ContainerPtr container = op->container(); ClassDefPtr cl = ClassDefPtr::dynamicCast(container); // Get the class containing the op. ! string scope = fixId(cl->scope()); ! params.push_back(scope + (amd ? "AMD_" : "AMI_") + cl->name() + '_' + op->name() + " __cb"); ParamDeclList paramList = op->parameters(); for(ParamDeclList::const_iterator q = paramList.begin(); q != paramList.end(); ++q) Index: src/slice2vb/Gen.cpp =================================================================== RCS file: /home/cvsroot/ice/src/slice2vb/Gen.cpp,v retrieving revision 1.12 diff -c -r1.12 Gen.cpp *** src/slice2vb/Gen.cpp 16 Nov 2004 01:54:22 -0000 1.12 --- src/slice2vb/Gen.cpp 2 Dec 2004 02:49:50 -0000 *************** *** 722,728 **** ContainerPtr container = op->container(); ClassDefPtr cl = ClassDefPtr::dynamicCast(container); // Get the class containing the op. string param = "ByVal __cb As "; ! param += (amd ? "AMD_" : "AMI_") + cl->name() + "_" + op->name(); params.push_back(param); ParamDeclList paramList = op->parameters(); --- 722,729 ---- ContainerPtr container = op->container(); ClassDefPtr cl = ClassDefPtr::dynamicCast(container); // Get the class containing the op. string param = "ByVal __cb As "; ! string scope = fixId(cl->scope()); ! param += scope + (amd ? "AMD_" : "AMI_") + cl->name() + "_" + op->name(); params.push_back(param); ParamDeclList paramList = op->parameters();