Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

malloc cleanup

Message-ID: <20030715144657.GA21313@math.berkeley.edu>

p4raw-id: //depot/perl@20184
  • Loading branch information...
commit 6af660ee01c05048b7704273e88e9249deb8202f 1 parent 830b38b
Ilya Zakharevich authored jhi committed
Showing with 23 additions and 3 deletions.
  1. +4 −0 makedef.pl
  2. +11 −3 malloc.c
  3. +8 −0 malloc_ctl.h
4 makedef.pl
View
@@ -602,6 +602,8 @@ sub emit_symbols {
Perl_get_mstats
Perl_strdup
Perl_putenv
+ MallocCfg_ptr
+ MallocCfgP_ptr
)];
if ($define{'USE_ITHREADS'}) {
emit_symbols [qw(
@@ -620,6 +622,8 @@ sub emit_symbols {
Perl_dump_mstats
Perl_get_mstats
Perl_malloced_size
+ MallocCfg_ptr
+ MallocCfgP_ptr
)];
}
14 malloc.c
View
@@ -1068,6 +1068,12 @@ static IV MallocCfg[MallocCfg_last] = {
};
IV *MallocCfg_ptr = MallocCfg;
+static char* MallocCfgP[MallocCfg_last] = {
+ 0, /* MallocCfgP_emergency_buffer */
+ 0, /* MallocCfgP_emergency_buffer_prepared */
+};
+char **MallocCfgP_ptr = MallocCfgP;
+
# undef MIN_SBRK
# undef FIRST_SBRK
# undef MIN_SBRK_FRAC1000
@@ -1090,6 +1096,9 @@ IV *MallocCfg_ptr = MallocCfg;
# define FILL_CHECK_CFG MallocCfg[MallocCfg_fillcheck]
# define FILL_CHECK (FILL_DEAD && FILL_CHECK_CFG)
+# define emergency_buffer MallocCfgP[MallocCfgP_emergency_buffer]
+# define emergency_buffer_prepared MallocCfgP[MallocCfgP_emergency_buffer_prepared]
+
#else /* defined(NO_MALLOC_DYNAMIC_CFG) */
# define FILL_DEAD 1
@@ -1121,14 +1130,13 @@ static u_int goodsbrk;
# define BIG_SIZE (1<<16) /* 64K */
# endif
-static char *emergency_buffer;
-static char *emergency_buffer_prepared;
-
# ifdef NO_MALLOC_DYNAMIC_CFG
static MEM_SIZE emergency_buffer_size;
/* 0 if the last request for more memory succeeded.
Otherwise the size of the failing request. */
static MEM_SIZE emergency_buffer_last_req;
+static char *emergency_buffer;
+static char *emergency_buffer_prepared;
# endif
# ifndef emergency_sbrk_croak
8 malloc_ctl.h
View
@@ -25,6 +25,7 @@ END_EXTERN_C
#ifndef NO_MALLOC_DYNAMIC_CFG
+/* IV configuration data */
enum {
MallocCfg_FIRST_SBRK,
MallocCfg_MIN_SBRK,
@@ -47,8 +48,15 @@ enum {
MallocCfg_last
};
+/* char* configuration data */
+enum {
+ MallocCfgP_emergency_buffer,
+ MallocCfgP_emergency_buffer_prepared,
+ MallocCfgP_last
+};
START_EXTERN_C
extern IV *MallocCfg_ptr;
+extern char **MallocCfgP_ptr;
END_EXTERN_C
#endif
Please sign in to comment.
Something went wrong with that request. Please try again.