summaryrefslogtreecommitdiffstats
path: root/private/crt32/heap/handler.cxx
diff options
context:
space:
mode:
authorAdam <you@example.com>2020-05-17 05:51:50 +0200
committerAdam <you@example.com>2020-05-17 05:51:50 +0200
commite611b132f9b8abe35b362e5870b74bce94a1e58e (patch)
treea5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/crt32/heap/handler.cxx
downloadNT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip
Diffstat (limited to 'private/crt32/heap/handler.cxx')
-rw-r--r--private/crt32/heap/handler.cxx53
1 files changed, 53 insertions, 0 deletions
diff --git a/private/crt32/heap/handler.cxx b/private/crt32/heap/handler.cxx
new file mode 100644
index 000000000..91db57522
--- /dev/null
+++ b/private/crt32/heap/handler.cxx
@@ -0,0 +1,53 @@
+/***
+*handler.cxx - defines C++ setHandler routine
+*
+* Copyright (c) 1990-1992, Microsoft Corporation. All rights reserved.
+*
+*Purpose:
+* Defines C++ setHandler routine.
+*
+*Revision History:
+* 05-07-90 WAJ Initial version.
+* 08-30-90 WAJ new now takes unsigned ints.
+* 08-08-91 JCR call _halloc/_hfree, not halloc/hfree
+* 08-13-91 KRS Change new.hxx to new.h. Fix copyright.
+* 08-13-91 JCR ANSI-compatible _set_new_handler names
+* 10-30-91 JCR Split new, delete, and handler into seperate sources
+* 11-13-91 JCR 32-bit version
+* 06-15-92 KRS Break MTHREAD support for NT BETA
+*
+*******************************************************************************/
+
+#include <cruntime.h>
+#include <os2dll.h>
+#include <new.h>
+
+/* Warning! MTHREAD is broken! */
+/* Warning! MTHREAD is broken! */
+/* Warning! MTHREAD is broken! */
+
+/* #ifndef MTHREAD */
+/* pointer to C++ new handler */
+extern "C" _PNH _pnhHeap;
+/* #endif */
+
+_PNH _set_new_handler( _PNH pnh )
+{
+_PNH pnhOld;
+
+/* #ifdef MTHREAD
+
+ _pptiddata tdata;
+ tdata = _getptd();
+ pnhOld = ((*tdata)->_tpnhHeap);
+ ((*tdata)->_tpnhHeap) = pnh;
+
+#else */ /* ndef MTHREAD */
+
+ pnhOld = _pnhHeap;
+ _pnhHeap = pnh;
+
+/* #endif */
+
+ return(pnhOld);
+}