]> git.eshelyaron.com Git - emacs.git/commitdiff
Backport: Don't cache images in nsimage.m (Bug#18918).
authorJan D <jan.h.d@swipnet.se>
Wed, 24 Dec 2014 11:10:01 +0000 (12:10 +0100)
committerJan D <jan.h.d@swipnet.se>
Wed, 24 Dec 2014 11:10:01 +0000 (12:10 +0100)
Fixes: Bug#18918
* nsterm.h (EmacsImage): Remove imageListNext, refCount, reference,
imageListSetNext, imageListNext.

* nsimage.m (ImageList, imageListNext, imageListSetNext:)
(reference): Remove.
(allocInitFromFile:): Remove searching ImageList and calling
reference (Bug#18918).
(dealloc): Remove handling if ImageList.

src/ChangeLog
src/nsimage.m
src/nsterm.h

index 9aeb8f261526092e538237cd74668e4508985644..75545acee90e438d03588d82b0d2d772182073f6 100644 (file)
@@ -1,3 +1,14 @@
+2014-11-02  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.h (EmacsImage): Remove imageListNext, refCount, reference,
+       imageListSetNext, imageListNext.
+
+       * nsimage.m (ImageList, imageListNext, imageListSetNext:)
+       (reference): Remove.
+       (allocInitFromFile:): Remove searching ImageList and calling
+       reference (Bug#18918).
+       (dealloc): Remove handling if ImageList.
+
 2014-12-22  Jan Djärv  <jan.h.d@swipnet.se>
 
        * xterm.c (do_ewmh_fullscreen): Don't remove maximized_horz/vert
index 6b68072b87ab1d4574db097e10345bb8df70a09a..cb29bf1b0475d6b29962dfc4bd26fe791b78cf33 100644 (file)
@@ -160,25 +160,11 @@ ns_set_alpha (void *img, int x, int y, unsigned char a)
 
 @implementation EmacsImage
 
-static EmacsImage *ImageList = nil;
-
 + allocInitFromFile: (Lisp_Object)file
 {
-  EmacsImage *image = ImageList;
   NSImageRep *imgRep;
   Lisp_Object found;
-
-  /* look for an existing image of the same name */
-  while (image != nil &&
-         [[image name] compare: [NSString stringWithUTF8String: SSDATA (file)]]
-             != NSOrderedSame)
-    image = [image imageListNext];
-
-  if (image != nil)
-    {
-      [image reference];
-      return image;
-    }
+  EmacsImage *image;
 
   /* Search bitmap-file-path for the file, if appropriate.  */
   found = x_find_image_file (file);
@@ -205,54 +191,14 @@ static EmacsImage *ImageList = nil;
   [image setSize: NSMakeSize([imgRep pixelsWide], [imgRep pixelsHigh])];
 
   [image setName: [NSString stringWithUTF8String: SSDATA (file)]];
-  [image reference];
-  ImageList = [image imageListSetNext: ImageList];
 
   return image;
 }
 
 
-- reference
-{
-  refCount++;
-  return self;
-}
-
-
-- imageListSetNext: (id)arg
-{
-  imageListNext = arg;
-  return self;
-}
-
-
-- imageListNext
-{
-  return imageListNext;
-}
-
-
 - (void)dealloc
 {
-  id list = ImageList;
-
-  if (refCount > 1)
-    {
-      refCount--;
-      return;
-    }
-
   [stippleMask release];
-
-  if (list == self)
-    ImageList = imageListNext;
-  else
-    {
-      while (list != nil && [list imageListNext] != self)
-        list = [list imageListNext];
-      [list imageListSetNext: imageListNext];
-    }
-
   [super dealloc];
 }
 
index 115d7ac6779f1716733ea8bf8f2fbfb884ca4a97..aa23e20ee84bcd715c15c27db247028f13f85fd1 100644 (file)
@@ -358,16 +358,11 @@ typedef float EmacsCGFloat;
 
 @interface EmacsImage : NSImage
 {
-  id imageListNext;
-  int refCount;
   NSBitmapImageRep *bmRep; /* used for accessing pixel data */
   unsigned char *pixmapData[5]; /* shortcut to access pixel data */
   NSColor *stippleMask;
 }
 + allocInitFromFile: (Lisp_Object)file;
-- reference;
-- imageListSetNext: (id)arg;
-- imageListNext;
 - (void)dealloc;
 - initFromXBM: (unsigned char *)bits width: (int)w height: (int)h
          flip: (BOOL)flip;