emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-24 2566f38: Backport: Don't cache images in nsimage.


From: Jan D.
Subject: [Emacs-diffs] emacs-24 2566f38: Backport: Don't cache images in nsimage.m (Bug#18918).
Date: Wed, 24 Dec 2014 11:10:11 +0000

branch: emacs-24
commit 2566f386bf0ba1e652524aecb43667d9d8ebd929
Author: Jan D <address@hidden>
Commit: Jan D <address@hidden>

    Backport: Don't cache images in nsimage.m (Bug#18918).
    
    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 |   11 +++++++++++
 src/nsimage.m |   56 +-------------------------------------------------------
 src/nsterm.h  |    5 -----
 3 files changed, 12 insertions(+), 60 deletions(-)

diff --git a/src/ChangeLog b/src/ChangeLog
index 9aeb8f2..75545ac 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,14 @@
+2014-11-02  Jan Djärv  <address@hidden>
+
+       * 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  <address@hidden>
 
        * xterm.c (do_ewmh_fullscreen): Don't remove maximized_horz/vert
diff --git a/src/nsimage.m b/src/nsimage.m
index 6b68072..cb29bf1 100644
--- a/src/nsimage.m
+++ b/src/nsimage.m
@@ -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];
 }
 
diff --git a/src/nsterm.h b/src/nsterm.h
index 115d7ac..aa23e20 100644
--- a/src/nsterm.h
+++ b/src/nsterm.h
@@ -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;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]