Mercurial > hg > xemacs-beta
comparison src/opaque.c @ 647:b39c14581166
[xemacs-hg @ 2001-08-13 04:45:47 by ben]
removal of unsigned, size_t, etc.
author | ben |
---|---|
date | Mon, 13 Aug 2001 04:46:48 +0000 |
parents | e7ef97881643 |
children | fdefd0186b75 |
comparison
equal
deleted
inserted
replaced
646:00c54252fe4f | 647:b39c14581166 |
---|---|
50 sprintf (buf, "#<INTERNAL OBJECT (XEmacs bug?) (opaque, size=%lu) 0x%lx>", | 50 sprintf (buf, "#<INTERNAL OBJECT (XEmacs bug?) (opaque, size=%lu) 0x%lx>", |
51 (long)(p->size), (unsigned long) p); | 51 (long)(p->size), (unsigned long) p); |
52 write_c_string (buf, printcharfun); | 52 write_c_string (buf, printcharfun); |
53 } | 53 } |
54 | 54 |
55 inline static size_t | 55 inline static Memory_Count |
56 aligned_sizeof_opaque (size_t opaque_size) | 56 aligned_sizeof_opaque (Memory_Count opaque_size) |
57 { | 57 { |
58 return ALIGN_SIZE (offsetof (Lisp_Opaque, data) + opaque_size, | 58 return ALIGN_SIZE (offsetof (Lisp_Opaque, data) + opaque_size, |
59 ALIGNOF (max_align_t)); | 59 ALIGNOF (max_align_t)); |
60 } | 60 } |
61 | 61 |
62 static size_t | 62 static Memory_Count |
63 sizeof_opaque (const void *header) | 63 sizeof_opaque (const void *header) |
64 { | 64 { |
65 return aligned_sizeof_opaque (((const Lisp_Opaque *) header)->size); | 65 return aligned_sizeof_opaque (((const Lisp_Opaque *) header)->size); |
66 } | 66 } |
67 | 67 |
68 /* Return an opaque object of size SIZE. | 68 /* Return an opaque object of size SIZE. |
69 If DATA is OPAQUE_CLEAR, the object's data is memset to '\0' bytes. | 69 If DATA is OPAQUE_CLEAR, the object's data is memset to '\0' bytes. |
70 If DATA is OPAQUE_UNINIT, the object's data is uninitialized. | 70 If DATA is OPAQUE_UNINIT, the object's data is uninitialized. |
71 Else the object's data is initialized by copying from DATA. */ | 71 Else the object's data is initialized by copying from DATA. */ |
72 Lisp_Object | 72 Lisp_Object |
73 make_opaque (const void *data, size_t size) | 73 make_opaque (const void *data, Memory_Count size) |
74 { | 74 { |
75 Lisp_Opaque *p = (Lisp_Opaque *) | 75 Lisp_Opaque *p = (Lisp_Opaque *) |
76 alloc_lcrecord (aligned_sizeof_opaque (size), &lrecord_opaque); | 76 alloc_lcrecord (aligned_sizeof_opaque (size), &lrecord_opaque); |
77 p->size = size; | 77 p->size = size; |
78 | 78 |
93 /* This will not work correctly for opaques with subobjects! */ | 93 /* This will not work correctly for opaques with subobjects! */ |
94 | 94 |
95 static int | 95 static int |
96 equal_opaque (Lisp_Object obj1, Lisp_Object obj2, int depth) | 96 equal_opaque (Lisp_Object obj1, Lisp_Object obj2, int depth) |
97 { | 97 { |
98 size_t size; | 98 Memory_Count size; |
99 return ((size = XOPAQUE_SIZE (obj1)) == XOPAQUE_SIZE (obj2) && | 99 return ((size = XOPAQUE_SIZE (obj1)) == XOPAQUE_SIZE (obj2) && |
100 !memcmp (XOPAQUE_DATA (obj1), XOPAQUE_DATA (obj2), size)); | 100 !memcmp (XOPAQUE_DATA (obj1), XOPAQUE_DATA (obj2), size)); |
101 } | 101 } |
102 | 102 |
103 /* This will not work correctly for opaques with subobjects! */ | 103 /* This will not work correctly for opaques with subobjects! */ |
170 } | 170 } |
171 | 171 |
172 void | 172 void |
173 reinit_opaque_once_early (void) | 173 reinit_opaque_once_early (void) |
174 { | 174 { |
175 Vopaque_ptr_free_list = make_lcrecord_list (sizeof (Lisp_Opaque_Ptr), &lrecord_opaque_ptr); | 175 Vopaque_ptr_free_list = make_lcrecord_list (sizeof (Lisp_Opaque_Ptr), |
176 &lrecord_opaque_ptr); | |
176 staticpro_nodump (&Vopaque_ptr_free_list); | 177 staticpro_nodump (&Vopaque_ptr_free_list); |
177 } | 178 } |
178 | 179 |
179 void | 180 void |
180 init_opaque_once_early (void) | 181 init_opaque_once_early (void) |