src/cx/collection.h

changeset 680
19379743e5a0
parent 677
b09aae58bba4
child 681
502105523db7
equal deleted inserted replaced
679:022fbd4bc057 680:19379743e5a0
110 * 110 *
111 * @param c the collection 111 * @param c the collection
112 * @param e the element 112 * @param e the element
113 */ 113 */
114 #define cx_invoke_simple_destructor(c, e) \ 114 #define cx_invoke_simple_destructor(c, e) \
115 (c)->simple_destructor((c)->store_pointer ? (*((void **) e)) : e) 115 (c)->simple_destructor((c)->store_pointer ? (*((void **) (e))) : (e))
116 116
117 /** 117 /**
118 * Invokes the advanced destructor function for a specific element. 118 * Invokes the advanced destructor function for a specific element.
119 * 119 *
120 * Usually only used by collection implementations. There should be no need 120 * Usually only used by collection implementations. There should be no need
123 * @param c the collection 123 * @param c the collection
124 * @param e the element 124 * @param e the element
125 */ 125 */
126 #define cx_invoke_advanced_destructor(c, e) \ 126 #define cx_invoke_advanced_destructor(c, e) \
127 (c)->advanced_destructor((c)->destructor_data, \ 127 (c)->advanced_destructor((c)->destructor_data, \
128 (c)->store_pointer ? (*((void **) e)) : e) 128 (c)->store_pointer ? (*((void **) (e))) : (e))
129 129
130 130
131 #define cx_invoke_destructor(c, e) \ 131 #define cx_invoke_destructor(c, e) \
132 if ((c)->simple_destructor) cx_invoke_simple_destructor(c,e); \ 132 if ((c)->simple_destructor) cx_invoke_simple_destructor(c,e); \
133 if ((c)->advanced_destructor) cx_invoke_advanced_destructor(c,e) 133 if ((c)->advanced_destructor) cx_invoke_advanced_destructor(c,e)

mercurial