Lines Matching full:helper
284 /* Copy, or bump refcount, of a block. If really copying, call the copy helper if present. */
322 //printf("calling block copy helper %p(%p, %p)...\n", aBlock->descriptor->copy, result, aBlock);
329 // This allows the copy helper routines to make non-refcounted block copies under GC
344 //printf("calling block copy helper...\n");
391 // Trust copy helper to copy everything of interest
434 //printf("calling out to helper\n");
534 In these cases helper functions are synthesized by the compiler for use in Block_copy and Block_release, called the copy and dispose helpers. The copy helper emits a call to the C++ const copy constructor for C++ stack based objects and for the rest calls into the runtime support function _Block_object_assign. The dispose helper has a call to the C++ destructor for case 1 and a call into _Block_object_dispose for the rest.
544 When a __block variable is either a C++ object, an Objective-C object, or another Block then the compiler also generates copy/dispose helper functions. Similarly to the Block copy helper, the "__block" copy helper (formerly and still a.k.a. "byref" copy helper) will do a C++ copy constructor (not a const one though!) and the dispose helper will do the destructor. And similarly the helpers will call into the same two support functions with the same values for objects and Blocks with the additional BLOCK_BYREF_CALLER (128) bit of information supplied.
590 // When Blocks or Block_byrefs hold objects their destroy helper routines call this entry point
679 cp += sprintf(cp, "descriptor->copy helper: %p\n", (void *)(uintptr_t)dp->copy);
680 cp += sprintf(cp, "descriptor->dispose helper: %p\n", (void *)(uintptr_t)dp->dispose);
695 cp += sprintf(cp, " copy helper: %p\n", (void *)(uintptr_t)src->byref_keep);
696 cp += sprintf(cp, " dispose helper: %p\n", (void *)(uintptr_t)src->byref_destroy);