On Aug 5, 2009, at 8:08 AM, Jonathan Stoppani wrote:

I just compiled TCompactProtocol.cpp after adding #warnings to TProtocol.h that let me know what path was taken through the header definitions. It turns out that I got the definitions at line 134 (the "else" that goes with "# if defined(__GNUC__) && defined(__GLIBC__)"), so I suspect that you see
the definitions starting at line 114, which do NOT define htolell or
letohll.

This looks like a bug. It can be fixed by adding the proper definitions for
the macros. I can't seem to find anything that defines what these do,
though, so it's not a slam dunk. If I look at the little endian code,
neither of these macros do anything, so I would guess that for your case
they should be defined as:

#  define htolell(n) bswap_64(n)
#  define letohll(n) bswap_64(n)

which would agree with what's done at line 111. That gives me confidence. You could try adding these lines after line 124, but I don't know how you verify that they're the correct definitions. (What does htolell mean? Host
to Little Endian Long Long?)

Hi Manbert,
this morning I already tried to replace the macros the way you say and
ATM all is working correctly... ;-)

Anyway, thanks for your response!

Ah, good. I'll add a Jira issue for it.

- Rush

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to