]> git.pld-linux.org Git - packages/gcc2.git/blame - gcc2-libstdc++-out-of-mem.patch
- move compressed patch to distfiles
[packages/gcc2.git] / gcc2-libstdc++-out-of-mem.patch
CommitLineData
43cb4b44
AM
1# DP: Throw exception instead of aborting when out of memory
2
3From: inaky@peloncho.fis.ucm.es
4To: submit@bugs.debian.org
5Subject: Bug#42622: libstdc++2.10-dev: stl_alloc.h: malloc_alloc out of memory handling abort()s instead of using exceptions
6Date: Sat, 7 Aug 1999 04:31:58 +0200
7
8Package: libstdc++2.10-dev
9Version: 1:2.95-2
10Severity: important
11
12 Hi
13
14 While coding some proof-of-concepts I've come around using a
15vector<> of a big lot of elements. Wanted to push the limits and try
16to recover possible failures. No way. The program was aborting on the
17library's own.
18
19 That should not do. You want exceptions to be able to dictate
20how the program should behave on error situations. The thing is at
21stl_alloc.h, instead of throwing an exception on OOM, it was printing
22the message "out of memory" to stderr and aborting. It is also
23prepared for doing it via exceptions, so I think it should be the
24default way.
25
26 I think that behaviour should be made extensible to the whole
27libstdc++ library, as as far as I know, exception support in GCC is
28mature enough as to handle it [and I hope so :)]. That's the only way
29to fully control a program's flow. Libraries should not dictate what
30to do on error [I'm sure I'm not telling you anything new].
31
32 The changes to make stl_alloc work ok with exceptions are:
33
34--- libstdc++/stl/stl_alloc.h~ Fri May 7 12:13:28 1999
35+++ libstdc++/stl/stl_alloc.h Sat Aug 7 04:16:22 1999
36@@ -38,7 +38,7 @@
37 // The allocation primitives are intended to allocate individual objects,
38 // not larger arenas as with the original STL allocators.
39
40-#if 0
41+#ifdef __STL_USE_EXCEPTIONS
42 # include <new>
43 # define __THROW_BAD_ALLOC throw bad_alloc()
44 #elif !defined(__THROW_BAD_ALLOC)
45
46 Thanks, anyway, for such nice packages for GCC & Co.
47
48 Your happy Debian user,
49
50-- System Information
51Debian Release: potato
52Kernel Version: Linux jovian 2.2.7 #1 mar ago 3 02:24:40 CEST 1999 i586 unknown
53
54Versions of the packages libstdc++2.10-dev depends on:
55ii g++ 2.95-2 The GNU C++ compiler.
56ii libc6-dev 2.1.2-0pre4 GNU C Library: Development libraries and hea
57ii libstdc++2.10 2.95-2 The GNU stdc++ library
This page took 0.113207 seconds and 4 git commands to generate.