Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.14.84] |
|
Страницы: (4) 1 2 [3] 4 все ( Перейти к последнему сообщению ) |
Сообщ.
#31
,
|
|
|
вот. написал мульку. вопрос - а почему пальмовцы сами до этого не додумались?
http://palmz.in/board/index.php?showtopic=28056 |
Сообщ.
#32
,
|
|
|
о, спасибо! полезно.
ты просто пробегаешь по базам и делаешь всем syncdatabase? Добавлено Цитата igor_n @ вопрос - а почему пальмовцы сами до этого не додумались? ну так наверное как обычно - в следующем пачте сделают. у них же все так - постепенное эволюционное развитие на своих ляпах и их решений сторонними писателями. |
Сообщ.
#33
,
|
|
|
я не нашел как из арма вызвать DmSyncDatabase. Поэтому просто закрываю все базы, открытые в режиме записи.
|
Сообщ.
#34
,
|
|
|
Игорь - это что-то... Меня уже забадали вечные слёты преференсов, я их даже на карте специально держу для быстрого востановления машинки. Щас будем тестить. Сенкс.
|
Сообщ.
#35
,
|
|
|
Может кто сможет объяснить.
Проблемы с Tungsten X. Если после soft-reset (обязательное условие) выполнять вот такой код: MemHandle new_record=DmResizeRecord(db,index,record_size); if(new_record!=NULL) { new_record=DmGetRecord(db,index); UtilsDmWriteCheck(new_record,0,record,record_size); DmReleaseRecord(db,index,true); } То после нескольких итераций (например семи) происходит софт-ресет девайса при выполнении DmResizeRecord, а симулятор просто закрывается с ошибкой. Все параметры с виду в норме. И это только на TX! На других машинках с NVFS проблем не замечено. Заменяем DmResizeRecord на свою реализацию: static MemHandle PrvResizeRecord(DmOpenRef db,UInt16 index,UInt32 new_size) { MemHandle record=DmGetRecord(db,index); if(record!=NULL) if(MemHandleResize(record,new_size)!=errNone) { DmReleaseRecord(db,index,false); record=NULL; } return record; } И соответственно немного правим код: MemHandle new_record=PrvResizeRecord(db,index,record_size); if(new_record!=NULL) { UtilsDmWriteCheck(new_record,0,record,record_size); DmReleaseRecord(db,index,true); } Теперь нет проблем! Что это может быть? Где моя ошибка? Пробовал после DmResizeRecord не вызывать DmGetRecord, но это не влияет на результат. Это сообщение было перенесено сюда или объединено из темы "DmResizeRecord на TX" |
Сообщ.
#36
,
|
|
|
Ага. Мир NVFS, жестокий и беспощадный. Это баги, внесенные в 5.4.9 изменением функциональности.
Попробуй запустить свой код под дебажным симулятором с подключенным репортером, я думаю что вылезут интересные сообщения. Это сообщение было перенесено сюда или объединено из темы "DmResizeRecord на TX" |
Сообщ.
#37
,
|
|
|
Сейчас попробую. Кстати, как я говорил сам дебажный симулятор падает при выполнении DmResizeRecord.
Это сообщение было перенесено сюда или объединено из темы "DmResizeRecord на TX" |
Сообщ.
#38
,
|
|
|
Было у меня подозрение, что с resize неладно: Известные баги PalmOS 5.4 сообщение #20.
Это сообщение было перенесено сюда или объединено из темы "DmResizeRecord на TX" |
Сообщ.
#39
,
|
|
|
Reporter вообще ничего сказать не успевает
-юсртыхэю Цитата igor_n @ Было у меня подозрение, что с resize неладно: Известные баги PalmOS 5.4 сообщение #20. Я не думал, что стоит делать DmGetRecord перед DmResizeRecord. Она же (Resize) принимает в параметрах индекс записи, а не Handle. Но вот попробовал вставить - и на симуляторе все заработало! Я говорил, что для воспроизведения проблемы необходимо выполнить soft-reset. Вероятно, система не может найти запись в DbCache, и рушится. Таким образом, думаю тему можно закрыть: Либо не сипользовать DmResizeRecord, а реализовывать вручную. Либо делать DmGetRecord перед использованием DmResizeRecord. P.S. Может эту инфу добавить в "Известные баги..."? Это сообщение было перенесено сюда или объединено из темы "DmResizeRecord на TX" |
Сообщ.
#40
,
|
|
|
Интересное в камне. Выставка чудес.
В отладочных тулзах от пальмвана есть простая утилитка MemInfo. Она показывает размеры все хипов: динамического, кэша и стораджа. Что интересно: Внимание вопрос: они что, сами не знают как проще сбросить? или просто никак не сбросишь? |
Сообщ.
#41
,
|
|
|
Что за тулза, впервые слышу? Можно ли ссылочку? В PluggedIn не нашел.
Интересно, посмотреть, может хоть она работает? Потому что все мои попытки очистить кэш на 5.4.8 провалились. |
Сообщ.
#42
,
|
|
|
поищи там Palm_SDK_Utilities.zip. со ссылками сам знаешь, там плохо.
|
Сообщ.
#43
,
|
|
|
Игорь, о каком именно Palm_SDK_Utilities.zip ты говоришь?
Да, есть такой файл в Palm SG SDK (у меня версия за октябрь 2005). Внутри этого файла только три папки - FakeCamera, tipsAndTutorial, VMFontLibrary. Никаких исходиников там нет. Пример MemoryInfoдействительно присутствует в этом SDK, но там только получение информации и никаких операций с DbCache. |
Сообщ.
#44
,
|
|
|
а это такой прикол от пальмвана. они время от времени втихую апдейтят свои тулзы и документацию. так что просто скачай новую версию.
|
Сообщ.
#45
,
|
|
|
Точно, Utils они обновили, и в них есть MemoryInfo.prc
На TX освобождает кэш только по "MemFill". По "Hotsync" кэш только забивается. Пробовал Цитата через MemChunkNew- пока не получилось. Никто больше не пробовал? попытка выделения блока размером 1 << 31 байт в куче кэша |