From: Francois B <mrs...@us...> - 2004-09-29 00:08:12
|
Update of /cvsroot/openneo/openneo/apps In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21460 Modified Files: dir_buffer.c Log Message: By default no ram is used by the dir buffer Index: dir_buffer.c =================================================================== RCS file: /cvsroot/openneo/openneo/apps/dir_buffer.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** dir_buffer.c 8 Sep 2004 00:52:17 -0000 1.2 --- dir_buffer.c 29 Sep 2004 00:07:57 -0000 1.3 *************** *** 57,63 **** Macros have been defined to seperate offset from attribute ! The index array starts off at 1 KB ( 256 slots ). This buffer can grow when needed until it reaches 32 KB or until it runs out of memory/files. ! It will grow in 1 KB increment. Max index size = 8192 * 4 = 32 KB --- 57,63 ---- Macros have been defined to seperate offset from attribute ! The index array starts off at 256 Bytes ( GROW_STEP slots ). This buffer can grow when needed until it reaches 32 KB or until it runs out of memory/files. ! It will grow in (GROW_STEP*4) Bytes increment. Max index size = 8192 * 4 = 32 KB *************** *** 104,117 **** //Reset array ! if( item_array ) { ! ! //If buffer is big, reduce it ! if( item_array_size > GROW_STEP ) ! item_array = (struct dir_item*)heap_realloc( item_array, GROW_STEP * sizeof(struct dir_item), false ); ! } ! else ! item_array = (struct dir_item*)malloc( GROW_STEP * sizeof(struct dir_item) ); ! ! item_array_size = GROW_STEP; //Reset file cache --- 104,112 ---- //Reset array ! if( item_array ) ! free( item_array ); ! ! item_array = NULL; ! item_array_size = 0; //Reset file cache *************** *** 148,152 **** //Check RAM buffer if( mem_buffer_used + len > MEM_BUFFER_SIZE ) { ! DEBUGF("dir_buffer going to ram\n"); fd_file_buffer = fopen( FILE_CACHE_PATH, O_CREAT|O_RDWR|O_TRUNC ); } --- 143,147 ---- //Check RAM buffer if( mem_buffer_used + len > MEM_BUFFER_SIZE ) { ! DEBUGF("dir_buffer going to file\n"); fd_file_buffer = fopen( FILE_CACHE_PATH, O_CREAT|O_RDWR|O_TRUNC ); } *************** *** 260,263 **** --- 255,265 ---- dir_buffer_reset(); + item_array = (struct dir_item*)malloc( GROW_STEP * sizeof(struct dir_item) ); + + if( !item_array ) + return -1; + + item_array_size = GROW_STEP; + //Add virtual folder //add_entry( ".", 1, DIR_ATTR_DIR ); *************** *** 347,351 **** if( grow_index() == -1 ) { ! msg_splash( HZ/2, 0, "No enough RAM for more files"); break; //Not enough RAM to load more files } --- 349,353 ---- if( grow_index() == -1 ) { ! msg_splash( HZ, 0, "No enough RAM for more files"); break; //Not enough RAM to load more files } |