Lines Matching full:destructor
34 // 'release' method is called, they deallocate the memory in the destructor.
77 st_cxa_cleanup ( void *ptr, size_t &idx, size_t element_size, destruct_f destructor )
79 destructor_ ( destructor ), enabled_ ( true ) {}
112 // destructor, &::operator new[], &::operator delete[])
115 void (*constructor)(void*), void (*destructor)(void*) ) {
118 constructor, destructor, &::operator new [], &::operator delete [] );
131 // destructor for any already constructed elements, and rethrow the
132 // exception. If the destructor throws an exception, call std::terminate.
135 // padding_size is zero, the destructor may be NULL; in that case it must
141 void (*constructor)(void*), void (*destructor)(void*),
158 __cxa_vec_ctor ( vec_base, element_count, element_size, constructor, destructor );
170 void (*constructor)(void*), void (*destructor)(void*),
187 __cxa_vec_ctor ( vec_base, element_count, element_size, constructor, destructor );
199 // address, respectively. If an exception occurs, call the given destructor
200 // (if non-NULL) on each copied element and rethrow. If the destructor
201 // throws an exception, call terminate(). The constructor and or destructor
207 void (*constructor) (void*, void*), void (*destructor)(void*) ) {
213 st_cxa_cleanup cleanup ( dest_array, idx, element_size, destructor );
226 // destructor for any already-constructed elements, and rethrow the
227 // exception. If the destructor throws an exception, call terminate(). The
228 // constructor and/or destructor pointers may be NULL. If either is NULL,
232 void (*constructor)(void*), void (*destructor)(void*) ) {
237 st_cxa_cleanup cleanup ( array_address, idx, element_size, destructor );
247 // size of its elements, call the given destructor on each element. If the
248 // destructor throws an exception, rethrow after destroying the remaining
249 // elements if possible. If the destructor throws a second exception, call
250 // terminate(). The destructor pointer may be NULL, in which case this
254 void (*destructor)(void*) ) {
256 if ( NULL != destructor ) {
259 st_cxa_cleanup cleanup ( array_address, idx, element_size, destructor );
266 destructor ( ptr );
275 // size of its elements, call the given destructor on each element. If the
276 // destructor throws an exception, call terminate(). The destructor pointer
279 size_t element_size, void (*destructor)(void*) ) {
281 if ( NULL != destructor ) {
289 destructor ( ptr );
298 // the cookie, and the size of its elements, call the given destructor on
301 // destructor throws an exception, rethrow after (a) destroying the
302 // remaining elements, and (b) deallocating the storage. If the destructor
304 // destructor pointer must be NULL. If the destructor pointer is NULL, no
305 // destructor call is to be made.
312 // function be called even if the destructor throws an exception derives
316 size_t element_size, size_t padding_size, void (*destructor)(void*) ) {
319 destructor, &::operator delete [] );
329 void (*destructor)(void*), void (*dealloc)(void*) ) {
336 if ( 0 != padding_size && NULL != destructor ) // call the destructors
338 element_size, destructor );
350 void (*destructor)(void*), void (*dealloc) (void*, size_t)) {
359 if ( 0 != padding_size && NULL != destructor ) // call the destructors
360 __cxa_vec_dtor ( array_address, element_count, element_size, destructor );