Форум: "Потрепаться";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
ВнизБаги в Delphi7 Найти похожие ветки
← →
Goida © (2004-04-23 11:16) [0]Кто-нибудь знает о каких-нибудь багах в этой версии Д?
← →
Anatoly Podgoretsky © (2004-04-23 11:31) [1]Борланд знает
← →
Goida © (2004-04-23 11:34) [2]Я спросил, потому что один из моих товарищей сказал, якобы у седьмого баг в работе с динамической памятью. Я ему говорю, что скорее всего это баг у тебя, а он мне пример и не верит... Вот и захотел я узнать...
← →
uny (2004-04-23 11:38) [3]багов нет, что вы, она идеальная:)
← →
Goida © (2004-04-23 11:44) [4]Так уж и нет... В любой программе есть ошибки!
← →
Fredericco © (2004-04-23 11:51) [5]Если баги и есть, то всегда есть способ их обойти.
← →
Паниковский © (2004-04-23 11:52) [6]Goida
ищите и обрящите
← →
uny (2004-04-23 11:56) [7]если искать, то что то хорошее
← →
Матлабист (2004-04-23 12:44) [8]
> Я спросил, потому что один из моих товарищей сказал, якобы
> у седьмого баг в работе с динамической памятью.
В Delphi 7 в работе с динамической памятью был разве только пофиксен один (незначительный) баг: (при выделении блока размеров 2 Гб минус несколько байт) можно быль получить блок в 12-ть байт. В остальном работа с памятью не отличается от Delphi 6, Delphi 5. Кроме того, можно поставить любой менеджер памяти по своему усмотрению. Лично мне найти какой либо баг не удалось ;)
http://rsdn.ru/article/Delphi/memmanager.xml
По поводу бага. Размер блока выравнивался ранее (GetMem.inc, Delphi 5) по алгоритму
function SysGetMem(size: Integer): Pointer;
.................
Inc(size, sizeof(TUsed) + (cAlign-1));
size := size and not (cAlign-1);
if size < sizeof(TFree) then
size := sizeof(TFree);
Откуда, если размер оказывался, например, $7FFFFFFF байт, то после Inc (сAlign=4) получалось $80000002 байта, потом после and получалось $80000000 байт (что соответствовало -2147483648). Естественно это меньше чем SizeOf(TFree) = 12 байт. Поэтому выделялся блок в 12-ть байт ;)
← →
Матлабист (2004-04-23 12:56) [9]Ну и если тебе будет легче, то в Delphi 6 следующий код приводил к Internal error (пишу по памяти):
program Test;
uses Windows;
type
TEnum = (e1, e6=6);
TSomeClass = class(TPersistent)
private
FMyEnum: TEnum;
published
MyEnum: TEnum read FMyEnum write FMyEnum;
end;
begin
with TSomeClass.Create do Free;
end.
И еще... В Delphi 6 появилась возможность делать свое представление для помощи по F1... Так вот, так где-то при регистрации своей системы помощи, возникала ошибка, связанная с тем, что цикл поиска и удаления системы был от 0 до N-1, а не от N-1 до 0. D6 нет, поэтому сказать точно не могу...
← →
VMcL © (2004-04-23 13:46) [10]>>Матлабист (23.04.04 12:56) [9]
program Test;
uses
Windows, Classes;
type
TEnum = (e1, e6=6);
TSomeClass = class(TPersistent)
private
FMyEnum: TEnum;
published
property MyEnum: TEnum read FMyEnum write FMyEnum;
end;
begin
with TSomeClass.Create do Free;
end.
Delphi 6.240 (Update Pack 2) - всё ОК.
← →
Матлабист (2004-04-23 15:13) [11]Это было сразу после выхода версии D6 без патчей...
← →
Amoeba © (2004-04-23 15:40) [12]Давно уже существует специальный сайт, посвященный bug"ам в Delphi (все версии):
http://buglist.jrsoftware.org/
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.048 c