Skip to content

Commit b10f1ef

Browse files
authored
Retain calayer after creation (#546)
* Retain calayer after creation * Fix fmt * fix create_calayer test
1 parent 652bab0 commit b10f1ef

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

cocoa/src/quartzcore.rs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,11 @@ impl CALayer {
6565

6666
#[inline]
6767
pub fn new() -> CALayer {
68-
unsafe { CALayer(msg_send![class!(CALayer), layer]) }
68+
unsafe {
69+
let id: id = msg_send![class!(CALayer), layer];
70+
let _: id = msg_send![id, retain];
71+
CALayer(id)
72+
}
6973
}
7074

7175
#[inline]
@@ -1680,3 +1684,15 @@ pub type CVSMPTETimeFlags = u32;
16801684

16811685
pub const kCVSMPTETimeValid: CVSMPTETimeFlags = 1 << 0;
16821686
pub const kCVSMPTETimeRunning: CVSMPTETimeFlags = 1 << 1;
1687+
1688+
#[cfg(test)]
1689+
mod test {
1690+
use super::CALayer;
1691+
1692+
#[test]
1693+
fn create_calayer() {
1694+
objc::rc::autoreleasepool(|| {
1695+
let _ = CALayer::new();
1696+
});
1697+
}
1698+
}

0 commit comments

Comments
 (0)