Print Page | Close Window

Crash on PropertyGrid delete

Printed From: Codejock Forums
Category: Codejock Products
Forum Name: Property Grid
Forum Description: Topics Related to Codejock Property Grid
URL: http://forum.codejock.com/forum_posts.asp?TID=4203
Printed Date: 22 November 2024 at 3:34am
Software Version: Web Wiz Forums 12.04 - http://www.webwizforums.com


Topic: Crash on PropertyGrid delete
Posted By: Paolo
Subject: Crash on PropertyGrid delete
Date Posted: 12 May 2006 at 4:58am
Hello everyone!

I created a PropertyGrid derived class with empty destructor.
When I delete an instance of this class,
CXTPPropertyGrid::~CXTPPropertyGrid()

is called: first instruction in this method is
delete m_pPaintManager;
which executes
CMDTARGET_RELEASE(m_pMetrics);
. This instruction substantially destroys m_pMetrics and resets it to NULL.
CXTPPropertyGrid::~CXTPPropertyGrid()
then goes on with:
if (m_pView) {
  delete m_pView;
}

that executes
CXTPPropertyGridView::ResetContent()
that contains the instruction
CFont* pFont =  &GetPaintManager()->GetItemMetrics()->m_fontNormal ;

PaintManager is still a valid object, but m_pMetrics in it is no more valid thus is not correct to access it to get
m_fontNormal


for this reason
pFont
is not assigned correctly and when
CXTPPropertyGridView::ResetContent()
executes the successive instruction
SetFont(pFont, FALSE);
makes the application to crash.

This is what I've been able to trace about my Application crash.
Now the question: am I someway wrong in deleting PropertyGrid or is this a bug that has been solved in latest release (I'm actually using 9.81 ToolkitPro).

Thanks for any help
Paolo



Replies:
Posted By: Oleg
Date Posted: 12 May 2006 at 6:53pm

Yes, it was already fixed...

Add

m_pView->DestroyWindow();
in destructor of  inherited class



-------------
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS


Posted By: Kisly
Date Posted: 19 May 2006 at 8:09am

У нас те же косяки, только не в унаследованном Property Grid, а в dll, в которой есть модальный диалог с Property Grid'ом. В Debug-ной версии (мы купили 9.81). Падает при закрытии диалога. В exeшнике тот же диалог не падает.

Письмо написали.

Замена delete на DestroyWindow(); в прЫнцыпе помогает, но это же не наш метод. К тому же, достаточно ли этого? Вот и возникает извечный русский вопрос: что делать?

То есть, надо ли качать новую версию библиотеки и переставлять или как вообще этот баг поправить?

С уважением, Олег Пресняков, Рязань



Posted By: Oleg
Date Posted: 19 May 2006 at 9:55am

День добрый.

Нужно не заменить, а добавить перед delete... А лучше, конечно, поменять на 10.1.

Просто создайте класс наследованный от CXTPPropertyGrid и в деструкторе добавьте m_pView->DestroyWindow(); 

Должно помочь.



-------------
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS


Posted By: Kisly
Date Posted: 19 May 2006 at 10:02am

Здравствуйте!

Спасибо за оперативный ответ. Будем пробовать.



Posted By: Kisly
Date Posted: 06 June 2006 at 3:38am
Добавка m_pView->DestroyWindow() в деструктор унаследованного класса не помогает. Может есть какие-то особенности, когда компонент находится внутри dll?

Насчет новой версии: мы можем скачать toolkit только 4 раза (1 уже израсходован). Чем вызвано такое непонятное ограничение? Новые версии выходят достаточно часто, и получается, что мы не можем скачивать их все?


Posted By: Oleg
Date Posted: 06 June 2006 at 8:29am

Здравствуйте,

1. Странно. Может есть возможность послать нам проект, что б мы его потестировали?

2. Это просто небольшая защита от постороннего скачивания.... Если счетчик обнуляется, напишите письмо на sales@codejock.com , вам его восстановят.



-------------
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS


Posted By: Kisly
Date Posted: 06 June 2006 at 8:53am
Originally posted by oleg oleg wrote:

1. Странно. Может есть возможность послать нам проект, что б мы его потестировали?


Проблема решилась. Наша dll была скомпилирована с выравниванием по одному байту, а сам тулкит по 8. Тогда другой вопрос: если перекомпилировать сам тулкит с выравниванием по одному байту не вызовет ли это каких-либо проблем?


Posted By: Oleg
Date Posted: 06 June 2006 at 2:48pm

Не вижу проблем... Попробуйте. :)



-------------
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS



Print Page | Close Window

Forum Software by Web Wiz Forums® version 12.04 - http://www.webwizforums.com
Copyright ©2001-2021 Web Wiz Ltd. - https://www.webwiz.net