- Free ALL Mdls, not just the first
- Don't copy buffered data just because the Device Object is buffered. Check if the IRP is.
- Don't handle MajorFunctions differenty, use flags which are now correctly set in order to determine course of action.
- Free memory by using flag.
- Don't remove IRP from Thread List too soon.
- Don't use FileObject fields after dereferencing it.
- Don't call IO Completion if there is already an APC routine.
- Signal FileObject/UserEvent properly depending on cases.
- Don't call UserAPC and set events like before if the IRP actually failed.
svn path=/trunk/; revision=14861
Now "advapi32_test registry" has 0 failures on Windows XP Pro. (and generally should have 0 failures under ROS too...)
svn path=/trunk/; revision=14860
libnurbs/nurbtess/sampleComp.cc: In function `void sampleCompLeft(Real*, Real*, vertexArray*, Int, Int, vertexArray*, Int, Int, gridBoundaryChain*, Int, Int, Int, Int, Int, Int, primStream*)':
libnurbs/nurbtess/sampleComp.cc:162: warning: 'gridMidIndex1' might be used uninitialized in this function
libnurbs/nurbtess/sampleComp.cc:162: warning: 'gridMidIndex2' might be used uninitialized in this function
libnurbs/nurbtess/sampleCompRight.cc: In function `void sampleCompRight(Real*, Real*, vertexArray*, Int, Int, vertexArray*, Int, Int, gridBoundaryChain*, Int, Int, Int, Int, Int, Int, primStream*)':
libnurbs/nurbtess/sampleCompRight.cc:75: warning: 'gridMidIndex1' might be used uninitialized in this function
libnurbs/nurbtess/sampleCompRight.cc:75: warning: 'gridMidIndex2' might be used uninitialized in this function
svn path=/trunk/; revision=14845
Also some locales aren't imported because their info contains unicode characters, and I didn't want to switch kernel32 from windres to wrc.
svn path=/trunk/; revision=14844
libutil/quad.c: In function `gluPartialDisk':
libutil/quad.c:451: warning: 'texLow' might be used uninitialized in this function
libutil/quad.c:451: warning: 'texHigh' might be used uninitialized in this function
libutil/quad.c: In function `gluSphere':
libutil/quad.c:720: warning: 'sintemp2' might be used uninitialized in this function
libutil/quad.c:720: warning: 'sintemp3' might be used uninitialized in this function
libutil/quad.c:720: warning: 'sintemp4' might be used uninitialized in this function
libutil/quad.c:721: warning: 'costemp2' might be used uninitialized in this function
libutil/quad.c:721: warning: 'costemp3' might be used uninitialized in this function
libutil/quad.c:721: warning: 'costemp4' might be used uninitialized in this function
svn path=/trunk/; revision=14842
libutil/mipmap.c: In function `gluBuild3DMipmaps':
libutil/mipmap.c:7382: warning: 'proxyTarget' might be used uninitialized in this function
by initialized the value when it declare
svn path=/trunk/; revision=14841
libutil/mipmap.c: In function `gluScaleImage':
libutil/mipmap.c:5105: warning: 'iter' might be used uninitialized in this function
remve outindex it is not being use at all
libutil/mipmap.c: In function `scaleInternalPackedPixel':
libutil/mipmap.c:5990: warning: 'outindex' might be used uninitialized in this function
svn path=/trunk/; revision=14840
- Removed many extra files that expanded the I/O Manager too much. We usually stick with the standard of
one object/class per file, like io/device.c or io/controller.c, so it was very confusing to have some
objects split up in 5 or 6 different files, some containing only one api. Additionally, even a third
system was used, were objects were bunched up together by class. This mess was so bad that NtCreateFile,
IopCreateFile, IoCreateFile, IopDeleteFile, NtDeleteFile and NtWriteFile were in 5 different files (as an
example).
- Cleaned up some IRP code and fixed a couple of bugs, mainly:
- Write I/O Type in IRP
- Write proper IRP Flags where they shoudl be used (Will help for completing requests when i clean up that code)
- Do *NOT* zero out buffers or data that shouldn't be zeroed. Scsiport actually dependen on this incorrect
behaviour. Code should never depend on a buffer being zeroed!
- Remove a lot of duplicated code and helper/alternate functions that weren't really useful.
- Free MDL and IRP on some failures where we didn't
- Alphabetized some of the large io files for easier lookup of functions. This and the deletions have resulted
in a completely bloated diff file. I will provide a cleaned up diff on request by manually downloading the
old revision and copy/pasting the new code directly above it. The functions which we touched are:
- IoAllocateIrp
- IoBuild[A]SyncronousFsdRequest
- IoBuildDeviceIoControlRequest
- IoInitializeIrp
- IoPageRead, IoSynchronousPageWrite
svn path=/trunk/; revision=14837