Сбой сборки мусора с использованием NSImage - PullRequest
1 голос
/ 02 июня 2009

Этот фрагмент кода был выделен из проекта, над которым я работаю. Он последовательно воспроизводит ошибку сборки мусора на моей Mac OS 10.5.7 и иногда дает сбой. Я смотрю на это слишком долго, поэтому мой вопрос: кто-нибудь еще видит, почему это приведет к ошибкам, когда сборка мусора включена?

- (void) doCrash: (id) sender
{
    NSArray *lURLArray = [ NSArray arrayWithObjects:
                          @"http://userserve-ak.last.fm/serve/300x300/23621007.jpg",
                          @"http://userserve-ak.last.fm/serve/300x300/26675609.png",
                          @"http://userserve-ak.last.fm/serve/300x300/26675609.png",
                          nil ];
    NSString *lImageURL = nil;
    for (lImageURL in lURLArray)
    {
        NSImage *lImage = [[NSImage alloc] initWithContentsOfURL: [NSURL URLWithString: lImageURL]];

        NSSize targetSize = NSMakeSize(80,80);
        NSImage *newImage = [[NSImage alloc] initWithSize:targetSize];
        [newImage lockFocus];

        NSRect thumbnailRect = NSMakeRect(0,0,80,80);
        NSRect sourceRect = NSMakeRect(0,0,[lImage size].width,[lImage size].height);

        [lImage drawInRect: thumbnailRect
                  fromRect: sourceRect
                 operation: NSCompositeSourceOver
                  fraction: 1.0];                

        [newImage unlockFocus];
    }
}

При воспроизведении URL-адресов в lURLArray у меня другое поведение: иногда происходит сбой, иногда сообщение об ошибке.

Сообщение об ошибке сборки мусора запускается, когда сборщик мусора освобождает одно из изображений, и выглядит так:

reference count underflow for <address>, break on auto_refcount_underflow_error to debug.

Любая помощь очень ценится, Спасибо, Кристоф

1 Ответ

2 голосов
/ 02 июня 2009

Это было подтверждено кем-то из Apple как ошибка в OX X 10.5.7.

rdar: // Проблема / 6938657

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...