Утечка памяти при StretchDraw
От: MaxxSPIC  
Дата: 17.08.04 08:28
Оценка:
Может быть кто-нибудь сталкивался с такой неприятностью,
буду очень благодарен за добрый совет.

это упрощённый кусок кода потока, загружающего фотографии в различные компаненты приложения


  TPicture *Picture = new TPicture();
   Picture->RegisterFileFormat(__classid(TJPEGImage), "jpg", "jpg",__classid(TJPEGImage));
   while(!Terminated)
   {
         QueueIn->NotEmpty->WaitFor(1000);
         if(QueueIn->Size <= 0)
            continue;

         TFotoLoaderItemIn *InItem = QueueIn->Pop();  // если очередь не пуста, достаем из неё запрос на загрузку фотки

         Picture->LoadFromFile(InItem->Path);         // грузим фотку

         TFotoLoaderItemOut *OutItem = new TFotoLoaderItemOut(InItem->Width, InItem->Height); //создаём элемент для исходящей очереди,
                                                                                   //содержащий екземпляр Graphics::TBitmap
                                                                                   //(создаваемый в конструкторе TFotoLoaderItemOut,
                                                                                   // там же задаются его размеры)

/* !!! */OutItem->Bitmap->Canvas->StretchDraw(OutItem->Bitmap->Canvas->ClipRect, Picture->Graphic);
//Вот тут то вся и проблема!
//Не знаю почему, но использование этого метода приводит к катострофической утечке памяти!
//То же самое, но с методом Draw никаких проблем не вызывает

         QueueOut->Push(OutItem);                     // помещаем в исходящую очередь
         SendMessage(InItem->ParentHandle, FMessageNum, 0, 0); //и шлём сообщение заказчику, о том, что запрос выполнен 

         delete InItem;
   }
Re: Утечка памяти при StretchDraw
От: Sinclair Россия https://github.com/evilguest/
Дата: 17.08.04 08:42
Оценка:
Здравствуйте, MaxxSPIC, Вы писали:

MSP>буду очень благодарен за добрый совет.

Первый совет: когда постишь в этот форум простыни кода, используй теги форматирования. Это существенно повышает шансф твоего сообщения на прочтение.
... << RSDN@Home 1.1.4 beta 1 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Утечка памяти при StretchDraw
От: MaxxSPIC  
Дата: 17.08.04 09:13
Оценка:
Здравствуйте, Sinclair, Вы писали:

Первый совет: когда постишь в этот форум простыни кода, используй теги форматирования. Это существенно повышает шансф твоего сообщения на прочтение.


Да конечно, спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.