On Sun, Sep 09, 2007 at 08:27:41AM +0000, Manuel Mayr wrote:
> Update of /cvsroot/monetdb/pathfinder/src/sqlhelpers/xmlshred
> In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv17315
>
> Modified Files:
> xmlshred.c
> Log Message:
>
> Fixing compiler errors.
>
>
> Index: xmlshred.c
> ===================================================================
> RCS file: /cvsroot/monetdb/pathfinder/src/sqlhelpers/xmlshred/xmlshred.c,v
> retrieving revision 1.1
> retrieving revision 1.2
> diff -u -d -r1.1 -r1.2
> --- xmlshred.c 8 Sep 2007 08:39:59 -0000 1.1
> +++ xmlshred.c 9 Sep 2007 08:27:39 -0000 1.2
> @@ -51,7 +51,8 @@
>
> #define NAME_ID 0
>
> -typedef long int nat;
> +typedef long unsigned int nat;
> +typedef int pre_t;
What's the reason for introducing yet another type, here?
Should "nat" be 32-bit on 32-bit systems and 64-bit on 64-bit systems?
Well, that won't work for Windows:
x64 Windows uses the P64 model, i.e., "int" and "long int" are 32 bits long,
but pointers are 64 bits long. x86-64 Linux uses the LP64 model, when "long
int" is also 64 bits while "int" remains 32 bits. In contrast, 32-bit
Windows and Linux are both ILP32, meaning that "int", "long int" and
pointers are all 32 bits.
Hence, "long int" is a considered "evil" and a "portability killer".
Why not use standard types "size_t" (unsigned) and "ssize_t" (signed) if you
need a system word-size integer?
In fact, "*pre*" and "*post*" --- assuming the names suggest that they
represent pre- & post-orders --- are actually of type "oid" in the remainder
of the pathfinder (MonetDB/XQUuery) code base (enabling 32-bit space-saving
pre/post storage also on 64-bit systems); likiwise, "size" is "int" and
"level" is "chr".
Is there any reason not to use the same, here?
Stefan
> enum kind_t {
> elem
> @@ -133,17 +134,17 @@
> void free_hash(bucket_t **hash_table);
>
> /* return a brand new name_id */
> -int new_nameid();
> +int new_nameid(void);
>
> typedef struct node_t node_t;
> struct node_t {
> - nat pre;
> - nat apre;
> + pre_t pre;
> + pre_t apre;
> nat post;
> nat pre_stretched;
> nat post_stretched;
> nat size;
> - int level;
> + unsigned int level;
> int name_id;
> node_t *parent;
> kind_t kind;
--
| Dr. Stefan Manegold | mailto:[EMAIL PROTECTED] |
| CWI, P.O.Box 94079 | http://www.cwi.nl/~manegold/ |
| 1090 GB Amsterdam | Tel.: +31 (20) 592-4212 |
| The Netherlands | Fax : +31 (20) 592-4312 |
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Monetdb-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-developers