23.07.2010, 14:09 | #1 |
Moderator
|
Контейнер: глючит функция conDel()
Всем доброго дня!
Столкнулся с необычными глюками вышеуказанной функции. Тестовый джоб: X++: static void Job350(Args _args) { container con; int idx; ; /* con += ['001','002','003','004','005','006','007','008','009','010','011','012','013','014','015','016','017','018','019','020','021','022','023','024','025','026','027','028','029','030','031']; con += ['032','033']; con += ['034','035','036','037','038','039','040','041','042','043','044','045','046','047','048','049','050','051','052','053','054','055','056','057','058','059','060','061']; con += ['062','063','064','065','066','067','068','069','070','071','072','073','074','075','076','077','078','079','080','081','082','083','084','085','086','087','088','089','090']; con += ['091','092','093','094','095','096','097','098','099','100','101','102','103','104','105','106','107','108','109','110','111','112','113','114','115','116','117','118','119','120','121']; */ /*for (idx = 1; idx <= conLen(con); idx++) info(conPeek(con, idx));*/ for (idx = 1; idx <= 150; idx++) con = conins(con, /*conLen(con) + */1, num2str0(idx, 3)); conView(con); con = conDel(con, 1, 105); conView(con); } В примере с заполнением в цикле (добавление в конец или в начало в обратном порядке - неважно) при удалении 105 элементов из 150 в контейнере остается 50 вместо 45. Причем остаются элементы с 51 по 100 (с '051' по '100'), т.е. удаление происходит не подряд. Если закомментировать заполнение в цикле и раскрыть заполнение через '+=', то наблюдаем другой эффект: ни в какую не удаляются элементы из 2й добавляемой строчки (в данном примере это ['032','033']. 2-я строка может быть разной длины, эффект остается. У меня больше нет слов, одни эмоции. DAX 4.0 SP2HF1, kernel 4.0.2501.116 и 4.0.2503.836 Кстати, тема не нова. Аж в 2004 году уже поднимался вопрос: Ошибка при работе с типом container
__________________
Андрей. Последний раз редактировалось Dron AKA andy; 23.07.2010 в 14:12. |
|
|
За это сообщение автора поблагодарили: Logger (5). |
23.07.2010, 15:04 | #2 |
Участник
|
Ax2009 билд 2985 (RU5)
бага не воспроизводится. Ни через сonins ни через += |
|
23.07.2010, 15:49 | #3 |
Участник
|
Да, бага не новая - есть еще одна тема, в которой я ее впервые увидел => я ее зарепортил, и ее пофиксили.
Как говориться, надо вам на новый версия переходить. |
|
|
За это сообщение автора поблагодарили: Dron AKA andy (2). |
Теги |
ax2009, ax4.0, container, баг, ошибка |
|
|