22.05.2013 / 21:34 | |
Lexi Пользователь Сейчас: Offline
Имя: Алексей Регистрация: 12.03.2013
| vl@volk, По идее java сама должна очистить память, при выходе. Да и зачем обнулять ссылку... разве что для более явного срабатывания gc.
|
22.05.2013 / 22:43 | |
Lexi Пользователь Сейчас: Offline
Имя: Алексей Регистрация: 12.03.2013
| Как я понимаю, ошибка из-за того, что код в emul.java крутится в цикле и внезапно лишается памяти. _____ В destroyApp, имхо, полезней FileConnection позакрывать for( int i = 0; i < Emul.fc.length; i++ ) try{
if(Emul.fc[ i ] != null){
Emul.fc[ i ].close();
if(Emul.fo[ i ].exists()) Emul.fo[ i ].delete();
Emul.fo[ i ].close();
}
}catch(IOException ex){}
|
22.05.2013 / 22:51 | |
vl@volk Пользователь Сейчас: Offline
Имя: Владислав Откуда: Земля Регистрация: 26.12.2012
| Lexi, Он никак не может лишится памяти, память удаляется при выходе но никак не в прцессе работы мидлета
__________________
знает толк |
22.05.2013 / 23:13 | |
Lexi Пользователь Сейчас: Offline
Имя: Алексей Регистрация: 12.03.2013
| vl@volk, Речь про массив байт, который используется как память эмулируемого компьютера. И после Emul.mem = null вылетает исключение.
|
22.05.2013 / 23:18 | |
vl@volk Пользователь Сейчас: Offline
Имя: Владислав Откуда: Земля Регистрация: 26.12.2012
| Как? У меня никаких исключений. Я же тебе говрою, удаляется память при выходе
__________________
знает толк |
22.05.2013 / 23:39 | |
Lexi Пользователь Сейчас: Offline
Имя: Алексей Регистрация: 12.03.2013
| Так:
Прикрепленные файлы: img.png (23.13 кб.) Скачано 159 раз |
22.05.2013 / 23:45 | |
vl@volk Пользователь Сейчас: Offline
Имя: Владислав Откуда: Земля Регистрация: 26.12.2012
| Пробовал удалять Emul.mem = null?
__________________
знает толк |
23.05.2013 / 06:14 | |
Artem_x86 Пользователь Сейчас: Offline
Имя: Артём Откуда: Донецк Регистрация: 30.10.2012
| vl@volk, я просто не сделал нормального выхода из основного цикла программы, поэтому легче было сделать исключение при выходе, т. к. в KEmulator-е например после выхода прога продолжала бы работать.
Изменено Artem_x86 (23.05 / 06:15) (всего 1 раз) |
23.05.2013 / 07:58 | |
vl@volk Пользователь Сейчас: Offline
Имя: Владислав Откуда: Земля Регистрация: 26.12.2012
| Artem_x86, А там есть циклы while(true)? Можно созздать булевую например flag, и в классе Emul добавить метод stop(){
flag = false;
mem = null;
System.gc();
}
, а потом этот метод вызывать в destroyApp() if ( emul != null ) {
emul.stop();
emul = null;
System.gc();
}
__________________
знает толк Изменено vl@volk (23.05 / 07:59) (всего 2 раза) |
30.05.2013 / 16:50 | |
Artem_x86 Пользователь Сейчас: Offline
Имя: Артём Откуда: Донецк Регистрация: 30.10.2012
| Немного обновил эмуль. Сделал перевод БИОС, а также убрал "Testing RAM". Смотреть в первом посте.
|