[omniORB] What the difference betwen long & double

Sai-Lai Lo S.Lo@orl.co.uk
09 Jul 1998 15:51:34 +0100


boris@imagine-sw.com (Boris Khanales) writes:

> > Could you define "does not work"?  Compiler error?
> The problem is realy bad. I can not reproduce it on stand
> along small app. The problem seems to me in 
> 
> any <<= double
> CORBA::Any::NP_replace
> MemBufferedStream &MemBufferedStream::operator= (const MemBufferedStream & m)
> MemBufferedStream::copy(const MemBufferedStream &m) 
>   memcpy(startofstream(),m.startofstream(),
> 	 (omni::ptr_arith_t)m.pd_out_mkr - 
> (omni::ptr_arith_t)m.startofstream());
> 	 
> But I'm not realy sure.  At one moment I thought it's an alignment
> problem and startofstream() does not return correct offset, but I still
> do not understand what exactly happening. When I invoke method it throw
> exception I'm on SunOS 5.5 Generic sun4u sparc SUNW,Ultra-1 and
> CORBA::Double does not help.

> If I will not solve it within next 2-3 days I'm going to try my own
> Doule (as stupid as long [2]), but ...
> 
> Any ideas?
> 
> PS I realize that stand along app will be a greate help, but it works.

I suspect there is a bug lurking in your program which corrupts
memory. (For instance, access memory area which has been freed.) The
bug finally surface in any <<= double but has nothing to do with it. 

Do you have purify? It might help you to locate where the problem is.

Just an idea.

Sai-Lai

-- 
Dr. Sai-Lai Lo                          |       Research Scientist
                                        |
E-mail:         S.Lo@orl.co.uk          |       Olivetti & Oracle Research Lab
                                        |       24a Trumpington Street
Tel:            +44 223 343000          |       Cambridge CB2 1QA
Fax:            +44 223 313542          |       ENGLAND