Discussion:
[omniORB] omniORB 4.1.x and Microsoft VC7.1 compiler
Barthel, Marco (Marco)
2008-11-27 17:44:59 UTC
Permalink
Hi,
is anybody out there using omniORB 4.1.3 and microsoft's VC7.1 compiler?
We are experiencing problems when counting the reference via functions like

ABSORB_API void ABSORB_IncRef(PortableServer::Servant servant);
ABSORB_API void ABSORB_DecRef(PortableServer::Servant servant);

somehow the compiler seems to generate incorrect code (looks like a problem with multiple inheritence)

There are two occurences of "omniServant" one of it is corrupted/strange.

-marco


Object layout (in debugger)

...
- POA_observation::Observer {...} POA_observation::Observer
- observation::_impl_Observer {...} observation::_impl_Observer
- omniServant {pd_activations={start=0x074a9b60 finish=0x074a9b64 end_of_storage=0x074a9b64 } } omniServant
- __vfptr 0x02f2d9b4 const LNADisconnectObserver::`vftable'{for `omniServant'} *
[0] 0x021dfea0 LNADisconnectObserver::`vector deleting destructor' *
[1] 0x021dfde0 observation::_impl_Observer::_ptrToInterface *
[2] 0x021dfdf0 PortableServer::ServantBase::_downcast *
[3] 0x021dfe00 observation::_impl_Observer::_mostDerivedRepoId *
[4] 0x022200a8 omniServant::_is_a *
[5] 0x022200a2 omniServant::_non_existent *
[6] 0x021dfe10 PortableServer::ServantBase::_do_get_interface *
[7] 0x021dfe20 observation::_impl_Observer::_dispatch *
[8] 0x021dfe30 PortableServer::ServantBase::_add_ref *
[9] 0x021dfe40 PortableServer::ServantBase::_remove_ref *
+ pd_activations {start=0x074a9b60 finish=0x074a9b64 end_of_storage=0x074a9b64 } omnivector<omniObjTableEntry *>
+ __vfptr 0x02f2d9a4 const LNADisconnectObserver::`vftable'{for `observation::_impl_Observer'} *
- PortableServer::ServantBase {_pd_refCount=1 } PortableServer::ServantBase
- omniServant {pd_activations={start=??? finish=??? end_of_storage=??? } } omniServant
- __vfptr CXX0030: Error: expression cannot be evaluated *
[0] CXX0030: Error: expression cannot be evaluated *
[1] CXX0030: Error: expression cannot be evaluated *
[2] CXX0030: Error: expression cannot be evaluated *
[3] CXX0030: Error: expression cannot be evaluated *
[4] CXX0030: Error: expression cannot be evaluated *
[5] CXX0030: Error: expression cannot be evaluated *
[6] CXX0030: Error: expression cannot be evaluated *
[7] CXX0030: Error: expression cannot be evaluated *
[8] CXX0030: Error: expression cannot be evaluated *
[9] CXX0030: Error: expression cannot be evaluated *
+ pd_activations {start=??? finish=??? end_of_storage=??? } omnivector<omniObjTableEntry *>
+ __vfptr 0x02f2d994 const LNADisconnectObserver::`vftable'{for `PortableServer::ServantBase'} *
_pd_refCount 1 int

...

Marco Barthel | Comergo GmbH | Heilbronner Str. 314 | 70469 Stuttgart | Voice +49 711 13586 42 | Fax +49 711 13586 8042 | ***@comergo.com

Sitz der Gesellschaft: Stuttgart
Registergericht: Amtsgericht Stuttgart - HRB 22107
Gesch?ftsf?hrer: Dr. Oliver Lohfert, Dr. Josef Breitenlechner




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20081127/ccf28e2a/attachment.htm
Duncan Grisby
2008-12-12 22:37:45 UTC
Permalink
Post by Barthel, Marco (Marco)
is anybody out there using omniORB 4.1.3 and microsoft's VC7.1 compiler?
We are experiencing problems when counting the reference via functions like
ABSORB_API void ABSORB_IncRef(PortableServer::Servant servant);
ABSORB_API void ABSORB_DecRef(PortableServer::Servant servant);
somehow the compiler seems to generate incorrect code (looks like a problem
with multiple inheritence)
Strange. How is your servant class defined?

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
Loading...