summaryrefslogtreecommitdiff
path: root/frontends/cocoa/arc.h
blob: bfdf31c5c56d422145b6e4725eacc8e8f025ff0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifndef arc_h
#define arc_h

/**
 *  Retains an Objective-C object and returns a pointer that can be passed to C.
 *  @param object The object to retain
 *  @return Pointer suitable to be stored in C code.
 */
static inline void *arc_retain(id object) {
    return (__bridge_retained void *)object;
}

/**
 *  Releases the Objective-C object pointed to by a C pointer.
 *  @param pointer Object pointer to release.
 */
static inline void arc_release(void *pointer) {
    id object = (__bridge_transfer id)pointer;
    object = nil;
}

#endif