Package: symmetrica / 2.0+ds-6

upstream-sage-int32.patch Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Description: int32
 Use int32_t for type INT, uint32_t for type UINT, and
 intptr_t for OBJECTKIND.
Origin: sage
Last-Update: 2013-10-19

diff -ru src/def.h c/def.h
--- src/def.h	2007-12-06 17:30:56.000000000 +0100
+++ c/def.h	2013-10-19 18:42:55.118745730 +0200
@@ -2,14 +2,9 @@
 /* INT should always be 4 byte */
 #ifndef DEF_H
 
-
-#ifdef __alpha
-typedef  int INT;
-typedef unsigned  int  UINT;
-#else /* __alpha */
-typedef long INT;
-typedef unsigned long UINT;
-#endif /* __alpha */
+#include <stdint.h>
+typedef int32_t INT;
+typedef uint32_t UINT;
 
 #include <stdio.h>
 #include <memory.h>
@@ -65,10 +60,13 @@
 
 
 /* definitionen fuer object.c */
-typedef INT OBJECTKIND;   /* 4 byte */
+/* NOTE: partition code assumes that there is no unused space in the
+ * object struct when an INT is stored. This requires both OBJECTKIND
+ * and OBJECTSELF to have a size equal to a machine word. */
+typedef intptr_t OBJECTKIND;
 
 typedef union {
-	INT ob_INT;
+	intptr_t ob_INT;
 	INT * ob_INTpointer;
 	char *ob_charpointer;
 	struct bruch *ob_bruch;