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)