NSOpenPanel падает при выборе файла - PullRequest
0 голосов
/ 02 ноября 2011

Я использую NSOpenPanel, чтобы позволить пользователю выбрать файл из своего MAC. Панель открывается нормально и отфильтровывает правильные файлы, но как только я нажимаю на файл, мое приложение вылетает.

Вот мой код для открытия панели:

if ([openDlg runModalForDirectory:begin file:filename types:filetypes] == NSOKButton)
{
    NSArray* selected = [openDlg filenames];
    for (int i = 0; i < (int)[selected count]; i++)
    {
        NSString* fileName = [selected objectAtIndex:i];
        string fn = [fileName UTF8String];
        results->Append(Value::NewString(fn));
    }
}

Код никогда не возвращается из вызова метода runmodalForDirectory.

Итак, когда я выбираю файл, консоль отладчика говорит следующее:

Program received signal:  “EXC_BAD_ACCESS”.
warning: Unable to restore previously selected frame.
Data Formatters temporarily unavailable, will re-try after a 'continue'. (Not safe to call dlopen at this time.)

Вкратце, я не уверен, что сейчас вызывать dlOpen.

и тогда я получаю это:

Loading a lot of stack frames

и стек вызовов выглядит следующим образом:

Call Stack

Стек вызовов до того, как произойдет рекурсивный вызов:

enter image description here

Стек вызовов находится в файле инфраструктуры WebKit с именем WebFullScreenController.mm, рекурсивно вызывая этот метод setDisableActions:

@implementation CATransaction(SnowLeopardConvenienceFunctions)
+ (void)setDisableActions:(BOOL)flag
{
    [self setValue:[NSNumber numberWithBool:flag] forKey:kCATransactionDisableActions];
}

У кого-нибудь есть идеи, почему это происходит? Заранее спасибо.

1 Ответ

0 голосов
/ 02 ноября 2011

Я нашел ответ, возможно, мы могли бы удалить этот вопрос, оказалось, что это была версия webkit, которую я использовал, и мне пришлось изменить webkit в соответствии с этим исправлением, опубликованным на webkit.org

https://bugs.webkit.org/show_bug.cgi?id=61224

...