Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Dec 05, 2011

  1. Adam Ernst

    Introduce a cacheURLs array to prevent race conditions related to che…

    …cking the on-disk image cache. (Fix #47)
    If a cache check is initiated, then canceled with cancelForDelegate: before a new cache check
    is started with a different URL but the same delegate, the ongoing disk cache check would still
    message the delegate despite being canceled by cancelForDelegate:. This is because it only
    checked to see if the delegate was in the cacheDelegates array; it had been removed by
    cancelForDelegate:, but added back by the new unrelated cache check. cacheURLs keeps track
    of which specific URLs are actually requested by the delegate. If the URL from a completed
    disk cache check does not match the delegate in cacheDelegates, the delegate is not messaged
    (since we know that request was canceled).
    adamjernst authored rs committed

Oct 03, 2011

  1. Olivier Poitrey

    Merge pull request #29 from nonamelive/patch-1

    Fixed a potential crash when the delegate retainCount = 1, which means th
    rs authored
  2. Olivier Poitrey

    Add an option to disable on disk caching (fix #16) + refactor other o…

    …ptions (low prio and retry failed) to an options: parameter
    rs authored

Sep 30, 2011

  1. Olivier Poitrey

    Failsafe a very common usage error (passing URL as NSString instead o…

    …f NSURL)
    rs authored

Sep 28, 2011

  1. Kai

    Fixed a potential crash when the delegate retainCount = 1, which mean…

    …s the delegate is only retained by the SDWebImageManager and the delegate's dealloc method has a structure like the code below.
    - (void)dealloc
        [manager cancelForDelegate:self];
        [super dealloc];
    nonamelive authored

Jul 13, 2011

  1. Adam Ernst

    Fix race condition with SDWebImageManager's cancelForDelegate:

    The -cancelForDelegate: method was working for downloads but not local cache checks. Add some new machinery to keep track of pending cache requests and only message the delegate if it hasn't since requested cancellation.
    adamjernst authored rs committed
  2. Olivier Poitrey

    Fix some implicit conversion warnings

    rs authored
  3. Olivier Poitrey

    Fix coding style

    rs authored

May 06, 2011

  1. Jeppe Vesterbæk

    Add low priority download mode. Low priorities run NSUrlConnection in…

    … NSEventTrackingRunLoopMode
    vesterbaek authored

Mar 21, 2011

  1. Olivier Poitrey

    Clean delegates even on failed downloads

    rs authored

Jan 25, 2011

  1. Elio Gonzalez

    Force retry of failed downloads

    eliog authored rs committed

Sep 16, 2010

  1. Olivier Poitrey

    Perform disk cache out operations asynchronousely in order to prevent…

    … from blocking the main runloop when a lot of cache queries are performed at the same time
    rs authored

Aug 29, 2010

  1. Olivier Poitrey

    Do not convert images to JPEG when stored to disk for caching

    This saves CPU and memory in all cases and alpha channel / image clearness if orignal format was PNG or GIF.
    rs authored

Jun 09, 2010

  1. Olivier Poitrey

    Replace the NSOperation based downloader by a simple async NSURLConne…

    …ction (read-on to understand why)
    I finally found the reason behind the download not started while UITableView is manipulated: the default NSURLConnection runloop mode. Its default mode is NSEventTrackingRunLoopMode which is interrupted by UI events. Changing default NSURLConnection runloop mode to NSRunLoopCommonModes just fix this good old responsiveness issue.
    I thus decided to replace the current NSOperation based implementation by this finding, as NSOperation is far more expensive than simple async connections. Additionally, moving aways from NSOperation here fix an odd lagging issue with iOS 4, an issue I can't explain at the moment.
    Note that `SDWebImageDownloader`'s `setMaxConcurrentDownloads:` method is now a no-op as I didn't implemented the NSOperation queuing system with async connections. I don't think it still necessary as thread-less async connectaions are very lightweight. If you think there is a real need of this, I may reconsider and implement it in the future. In the meantime, this method does nothing and its usage is declared as deprecated.
    rs authored

Jun 01, 2010

  1. Olivier Poitrey

    Set references to nil after release in dealloc methods

    rs authored

Dec 31, 2009

  1. Olivier Poitrey

    Handle nil image urls nicely

    rs authored

Nov 11, 2009

  1. Olivier Poitrey

    Fix some warnings when most warnings are activated

    rs authored

Sep 28, 2009

  1. Olivier Poitrey

    Fix the name of the SDWebImageManagerDelegate protocol

    rs authored

Sep 24, 2009

  1. Olivier Poitrey

    Remove the dirty hack of storing the helper into the first subview of…

    … the UIImageView and prevent duplicate downloads of the same URL
    The helper (now called manager) is now handling the mapping between the UIImageView and its downloader.
    This way we don't polute the UIImageView, and don't remove its capability to have subviews.
    This change removes the automatic handling of image placeholder. The placeholder image can
    be passed as second argument of setImageWithURL:placeholderImage:
    The manager now handle duplicate downloads for the same URL gracefuly by sharing the same downloader
    for all requestors.
    Finaly, the manager handles URLs which can't create an image (HTTP error or invalid format) by flagging
    them so it won't retry to download them again and again.
    rs authored
Something went wrong with that request. Please try again.