Re: Bitvector_t woes: again

From: Mike Stilson (mike@velgarian.sytes.net)
Date: 09/16/02


On Mon, Sep 16, 2002 at 12:54:52AM -0700, Mathew Earle Reuther wrote:
>On Sun, 15 Sep 2002, Mike Stilson wrote:
>
>> GET_OBJ_EXTRA() is a bitvector_t (unsigned long long int) right?
>
>Correct. Some lines from my structs.h:

Ok, next guess (Can't do otherwise w/o looking at the code, and frankly
there's a LOT of places to look and I don't wanna go over your whole
mud)

You are casting the values as ULL?
Here's what I use. (It's a little overkill, but:)

utils.h:
#define BIT(x) (1ULL << (uint64_t)(x))

then everything in structs.h is defined as, for example:

#define AFF_BLIND       BIT(28)
#define AFF_PHASE       BIT(29)
#define AFF_ETHER       BIT(30)

etc...

(I used a quick sed script to change all my previous
#define AFF_BLIND (1<<28) style defines to my BIT() method, it seems
lots more readable too.)

I remember having the same problem once with some aspect of 64 bit
conversion, and it was just something simple like that which was
overlooked in the first try after converting it, so yeah it actually is
simple (at least, I consider any system-wide change that I can have
bug-free in 2 compiles to be pretty simple) so it's probably just some
little thing somewhere.

-me

--
   +---------------------------------------------------------------+
   | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
   | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
   | Newbie List:  http://groups.yahoo.com/group/circle-newbies/   |
   +---------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 06/25/03 PDT