annotate src/lastfile.c @ 5781:0853e1ec8529

Use alloca_{rawbytes,ibytes} in #'copy-file, #'insert-file-contents-internal src/ChangeLog addition: 2014-01-20 Aidan Kehoe <kehoea@parhasard.net> * fileio.c (Fcopy_file, Finsert_file_contents_internal): Use alloca_{rawbytes,ibytes} here instead of the implicit alloca on the stack; doesn't change where the buffers are allocated for these two functions, but does mean that decisions about alloca vs. malloc based on buffer size are made in the same place (ultimately, the ALLOCA() macro).
author Aidan Kehoe <kehoea@parhasard.net>
date Mon, 20 Jan 2014 17:53:07 +0000
parents 308d34e9f07d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 /* Mark end of data space to dump as pure, for XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 Copyright (C) 1985 Free Software Foundation, Inc.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 This file is part of XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 448
diff changeset
6 XEmacs is free software: you can redistribute it and/or modify it
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 under the terms of the GNU General Public License as published by the
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 448
diff changeset
8 Free Software Foundation, either version 3 of the License, or (at your
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 448
diff changeset
9 option) any later version.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 for more details.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 448
diff changeset
17 along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 /* Synched up with: FSF 19.30. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 /* How this works:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 Fdump_emacs dumps everything up to my_edata as text space (pure).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 The files of Emacs are written so as to have no initialized
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 data that can ever need to be altered except at the first startup.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28 This is so that those words can be dumped as sharable text.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 It is not possible to exercise such control over library files.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31 So it is necessary to refrain from making their data areas shared.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32 Therefore, this file is loaded following all the files of Emacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33 but before library files.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34 As a result, the symbol my_edata indicates the point
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35 in data space between data coming from Emacs and data
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36 coming from libraries.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
39 #include <config.h>
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
40
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 char my_edata[] = "End of Emacs initialized data";
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
43 /* Ensure there is enough slack in the .bss to pad with. */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
44 #ifdef HEAP_IN_DATA
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
45 #define BSS_PADDING 0x1000
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
46 #else
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
47 #define BSS_PADDING 1
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
48 #endif
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
49
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
50 char my_ebss [BSS_PADDING];
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 428
diff changeset
51