]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix NS toolbar image release crash (bug#43973)
authorAlan Third <alan@idiocy.org>
Sat, 2 Jan 2021 18:19:39 +0000 (18:19 +0000)
committerAlan Third <alan@idiocy.org>
Sat, 2 Jan 2021 22:29:54 +0000 (22:29 +0000)
The toolbar fails to make a proper copy of EmacsImage objects, so
releasing the copy incorrectly released instance variables from the
original objects.

* src/nsimage.m ([EmacsImage copyWithZone:]): New function to enable
correct copying of EmacsImage.

src/nsimage.m

index f0014b50b9bae8c4e60e94d50f634481d492338c..fa81a41a519da7afd4f93d94d214669a6d34daf4 100644 (file)
@@ -293,6 +293,18 @@ ns_image_size_in_bytes (void *img)
 }
 
 
+- (id)copyWithZone:(NSZone *)zone
+{
+  EmacsImage *copy = [super copyWithZone:zone];
+
+  copy->stippleMask = [stippleMask copyWithZone:zone];
+  copy->bmRep = [bmRep copyWithZone:zone];
+  copy->transform = [transform copyWithZone:zone];
+
+  return copy;
+}
+
+
 /* Create image from monochrome bitmap. If both FG and BG are 0
    (black), set the background to white and make it transparent.  */
 - (instancetype)initFromXBM: (unsigned char *)bits width: (int)w height: (int)h