double memory alignment problem??



What is the status of the double problem?
In the archives I found that it was fixed
in the 0.5.3 version.  But I encounter
the same?? problem.

SETUP:
	Server side: echo-server
		ORBit-0.5__1-win32
		modified so it compiles
		with WebObjects 3.5 on Windows NT. (i386)

	Client 1: echo-client
		Same libraries as the
		server side.
		Windows NT
		

	Client 2: echo-client
		ORBit-0.5.3
		modified so it compiles on
		OpenStep 4.2.     (i386)
		(Note however that the port
		is far from complete!
		I could not get the server
		to run.)
		

Now on WinNT everything works fine.
The Server and client 1 that I compiled
as well as the precompiled server and client
that are contained in the ORBit-0.5__1-win32
package.

But the  OpenStep client (2)  has a problem
with the CORBA_double return value.

It returns garbage as you can see from to
the output (see bottom of the mail)
The problem is obvious, the lower four
bytes are zero.
However if I put a printf statement in the code, like:

	if (i == 10)  printf("\n");

in the echo-client.c main loop.
Everything works fine from the 10 iteration on.

My impression is, from reading previous mails
on the mailing list, that it has to do with
memory alignment.
Also it seems that the problem lies with the 0.5.3
client rather than the 0.5.1 server.

So I have a few questions:

Q1.  Is this a known issue?
Q2.  Is it already solved, or is someone working on it?
Q3.  What is the status of ORBit2?  And is this also
	an issue with ORBit2?
Q4.  If nobody is working on it, I could give it a try,
	but I am new to ORBit and CORBA so any pointers
	where to start are appreciated.


Greetings,
Wim Oudshoorn.



SAMPLE OUTPUT:
[[ First double, followd by hex-dump of the double]]

Message: [client] 4.27698e+86
Message: 00 00 00 00 1f 85 eb 51
Message: [client] 4.66726e-62
Message: 00 00 00 00 33 33 33 33
Message: [client] -1.10707e-234
Message: 00 00 00 00 f6 28 5c 8f
....
....
Message: 00 00 00 00 ae 47 e1 7a
Message: [client] -2.35343e-185
Message: 00 00 00 00 9a 99 99 99

[[ AFTER printf("\n"); ]]

Message: [client] 0.35
Message: 66 66 66 66 66 66 d6 3f
Message: [client] 0.98
Message: 5c 8f c2 f5 28 5c ef 3f
Message: [client] 0.92
...




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]