bug fixes.
Matthew Newhook
matthew_newhook@stratos.ca
Thu, 26 Jun 1997 12:12:21 -0230
Hi,
I've fixed three bugs in omniORB.
bug #1.
String_member copy constructor is incorrect.
Here is a patch.
rcsdiff CORBA.h
===================================================================
RCS file: RCS/CORBA.h,v
retrieving revision 1.1
diff -r1.1 CORBA.h
34,36d33
< * Revision 1.1 1997/06/24 18:47:11 matthew
< * Initial revision
< *
185,188c182
< if (_ptr) {
< string_free(_ptr);
< _ptr = 0;
< }
---
> _ptr = 0;
bug #2
The code generated by omniidl2 for exceptions is incorrect:
Here is a patch. (NOTE: this patch is not optimal... but it
fixes the problem for now)
===================================================================
RCS file: RCS/o2be_operation.cc,v
retrieving revision 1.1
diff -r1.1 o2be_operation.cc
520,521c520,522
< if (excpt->repoIdConstLen() > maxIdsize)
< maxIdsize = excpt->repoIdConstLen();
---
> int len = strlen(excpt->repositoryID())+1;
> if (len > maxIdsize)
> maxIdsize = len;
972c973,974
< produceConstStringSizeCalculation(s,"_msgsize",excpt->repoIdConstLen());
---
> int len = strlen(excpt->repositoryID())+1;
> produceConstStringSizeCalculation(s,"_msgsize", len);
976,977c978
< produceConstStringMarshalCode(s,"_s",excpt->repoIdConstName(),
< excpt->repoIdConstLen());
---
> produceConstStringMarshalCode(s,"_s",excpt->repoIdConstName(), len);
bug #3.
If an attempt is made to access orb methods that lock the
object table (such as is_equivalent) during the destruction
of an implementation object a deadlock will occur. Here is
a patch for this problem.
RCS file: RCS/objectRef.cc,v
retrieving revision 1.1
diff -r1.1 objectRef.cc
265a266
> omniObject* toDelete = 0;
268c269,270
< delete obj;
---
> toDelete = obj;
> //delete obj;
273a276,277
> if (toDelete != 0)
> delete toDelete;
Matthew
--
Matthew Newhook. matthew_newhook@stratos.ca, http://www.engr.mun.ca/~matthew
Software Designer, Stratos Network Research.
w: (709) 364-5950, h: (709)-745-4346