Re: переопределен openator new и operator delete - падает в
От: K13 http://akvis.com
Дата: 22.07.10 08:01
Оценка:
А>У меня есть сторонный графический движок — я его прикрутил к своей проге на Qt как виджет на уровне исходников (не как сторонняя либа). Так вот — в этом графичесом движке переопределны операторы new и delete

А>И вот в какой-то момент стало падать на operator delete из этого движка, причем этот опретор вызывается из деструктора QList. А падает потому, что этот двигловый delete говорит, что память выделена не через его new.


А>Вот и вопрос по С++ — как разрулить-то? Как сделать, что если юзается не мой new, то и delete не мой надо юзать?


Выкинуть из графического движка переопределения new / delete.
Это очень плохой дизайн либы — либа должна работать с тем менеджером, который ей подсунет программист, а не навязывать свой.
Возможно, кривизна еще и в самом переопределении -- как минимум, у меня несколько лет с разными версиями Qt жил свой менежер памяти, и она ни разу на это не обижалась
Например, забыли переопределить вариант с nothrow_t или еще что-нибудь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.