NCrashed
offline
Опыт:
13,553Активность: |
Упрямая функция
С этой функцией у мня случился трабл. При первом вызове она возвращает значение нормально, но второй, третий и т.д вызовы (при абсолютно таких же условиях) она возвращает юнита неправильно (т.е должна была возвратить юнита в if'е, а возвращает последний return). Может проблема не в ней?
Код:
|
14.06.2008, 16:56 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShadoW DaemoN
offline
Опыт:
37,078Активность: |
Попробуй так:
Код:
Если не будет работать, то проследи за сообщениями, выдаваемыми на экране, проконтролируй запись в кеш в данные поля (мб где-то обнуляется значение, но это маловероятно). Вообще по отладке кода в варе рекомендую прочитать статью "Ищем баги сами" |
14.06.2008, 17:31 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NCrashed
offline
Опыт:
13,553Активность: |
Проблема была не в функции. Дальше по триггеру, после использования этой функции, я делал оптимизацию: удалял ненужные триггеры, стирал из кеша записи, относящиеся к этим триггам. Как только я отправил в коменты функции "call flush_object(tr)"(tr не относится к триггу с функцией), баг исчез. Интересно: как очистка куска кеша влияет на целый кеш? Причем, данные, нужные функции записаны на объект "null", а после очистки от записей для объекта tr, тоже обнуляются. |
14.06.2008, 18:31 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShadoW DaemoN
offline
Опыт:
37,078Активность: |
Ну, имхо, это может быть только от некорректной последовательности при очистке, то есть:
Код:
Переменную следует обнулять после всех манипуляций с ней: Код:
|
14.06.2008, 19:02 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NCrashed
offline
Опыт:
13,553Активность: |
Вот тогда проблемный кусок кода. Вроде некорректной последовательности нету. А если и была, то я бы ее сразу увидел.
Код:
|
14.06.2008, 19:25 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|