// Modified without permission by Domagoj �ari� (dsaritz at gmail . com ).
- alloc.cpp � changed it to use Windows XP�s low fragmentation heap and call GetProcessHeap() only once.
- file.cpp - refactored it to no longer require manual initialization of STD handles via _init_file().
- initterm.cpp � refactored it to no longer use a dynamically allocated at-exit function pointer list as it still used a fixed size for the list; replaced the two index variables with a single pointer.
- crt0t*.cpp and libct.h � made the changes required by the changes to the above two files.
- math.cpp � added the ldiv() function.
- memory.cpp � added a (naive �implementation�) of _resetstkoflw() required by alloca(); added the __sse2_available DWORD required by Microsoft asm memory routines; disabled the original �manual� memory routines in favor of Microsoft�s asm optimized ones (this slightly increases the binary but I consider it well worth it).
- newdel.cpp � minor code reuse refactoring.
- sprintf.cpp � added minor sanity checks and the wide version of _snprintf.
- string.cpp � added the _String_base::_Xlen(), _String_base::_Xran(), _String_base::_Xinvarg() functions required/used by Dinkumware�s std::string implementation to report/handle errors.
- added memory_s.h and string_s.h with implementations for some of Microsofts �secure� CRT functions.
- .vcproj - converted to a VC9.0 project, tweaked optimization switches and added MASM support and Microsoft P4 memory routines .obj files and asm sources.
- throughout the files:
- added __declspec(selectany) specifiers to aid the linker in removing unused objects.
- added warning disabling pragma directives.
- added #pragma function() directives to enable compiling with �Enable Intrinsic Functions� set to �On�.
- did various minor stylistic changes and refactorings.
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This article, along with any associated source code and files, is licensed under The Common Development and Distribution License (CDDL)