[omniORB] Not valid heap pointer assertion (_WINDYNAMIC_+RTD)

Andrey Koubychev email@vtc.ru
Mon, 15 Apr 2002 16:36:51 +0200


Hi Developers,

   I have debug assertion "heap poitner is not valid". I know that I should
   use debug version of my exe and debug version of corba dlls (I use
   dynamic libs with _rtd prefix).
    And it seems , that it happens only with following circumstances:

    A calls B. In this call B calls A to query some information.
    A returns to B string allocated with CORBA::string_dup and then
    happens that assertion in A. I've used some disassm view and found
    that CORBA::string_dup happens in my .exe, but CORBA::string_free
    happens in corba dll. How could that be if I use _WINDYNAMIC_ ? I
    thought in this case all corba calls should lead to DLL func.
    invocation ?
    I dont use any inline optimization.
    If I use _WINSTATIC_ everything runs good. But ... I would like to
    use "dynamic" due to smaller size and faster linking.
    I use OmniOrb 3.02 and VC++ 6.0

    Thank you for your attention.

-- 
Best regards,
Kubyshev Andrey                          mailto:email@vtc.ru