Removed some direct accesses to the 16-bit task structure.
diff --git a/files/file.c b/files/file.c
index f2004f5..84c0001 100644
--- a/files/file.c
+++ b/files/file.c
@@ -40,7 +40,6 @@
#include "file.h"
#include "heap.h"
#include "msdos.h"
-#include "task.h"
#include "wincon.h"
#include "debugtools.h"
@@ -1746,50 +1745,7 @@
*/
UINT16 WINAPI SetHandleCount16( UINT16 count )
{
- HGLOBAL16 hPDB = GetCurrentPDB16();
- PDB16 *pdb = (PDB16 *)GlobalLock16( hPDB );
- BYTE *files = MapSL( pdb->fileHandlesPtr );
-
- TRACE("(%d)\n", count );
-
- if (count < 20) count = 20; /* No point in going below 20 */
- else if (count > 254) count = 254;
-
- if (count == 20)
- {
- if (pdb->nbFiles > 20)
- {
- memcpy( pdb->fileHandles, files, 20 );
- GlobalFree16( pdb->hFileHandles );
- pdb->fileHandlesPtr = (SEGPTR)MAKELONG( 0x18,
- GlobalHandleToSel16( hPDB ) );
- pdb->hFileHandles = 0;
- pdb->nbFiles = 20;
- }
- }
- else /* More than 20, need a new file handles table */
- {
- BYTE *newfiles;
- HGLOBAL16 newhandle = GlobalAlloc16( GMEM_MOVEABLE, count );
- if (!newhandle)
- {
- SetLastError( ERROR_NOT_ENOUGH_MEMORY );
- return pdb->nbFiles;
- }
- newfiles = (BYTE *)GlobalLock16( newhandle );
-
- if (count > pdb->nbFiles)
- {
- memcpy( newfiles, files, pdb->nbFiles );
- memset( newfiles + pdb->nbFiles, 0xff, count - pdb->nbFiles );
- }
- else memcpy( newfiles, files, count );
- if (pdb->nbFiles > 20) GlobalFree16( pdb->hFileHandles );
- pdb->fileHandlesPtr = K32WOWGlobalLock16( newhandle );
- pdb->hFileHandles = newhandle;
- pdb->nbFiles = count;
- }
- return pdb->nbFiles;
+ return SetHandleCount( count );
}