summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Mai <l.mai@web.de>2013-08-11 00:44:09 +0200
committerJames E Keenan <jkeenan@cpan.org>2013-08-11 01:27:52 +0200
commit03f05cb48515d5cc33c90b97a28e7b8111da5d32 (patch)
tree6df4a6ba7bd3dff4edf1e067d99508129b747e3f
parent1a066ce19c0aa4dc723633017794ce0bbaa4d7d3 (diff)
downloadperl-03f05cb48515d5cc33c90b97a28e7b8111da5d32.tar.gz
add adjust_size_and_find_bucket to embed.fnc
-rw-r--r--embed.fnc3
-rw-r--r--embed.h3
-rw-r--r--malloc.c14
-rw-r--r--proto.h7
4 files changed, 22 insertions, 5 deletions
diff --git a/embed.fnc b/embed.fnc
index 5fede447dd..624b2aa1fa 100644
--- a/embed.fnc
+++ b/embed.fnc
@@ -185,6 +185,9 @@ Anop |Free_t |mfree |Malloc_t where
npR |MEM_SIZE|malloced_size |NN void *p
npR |MEM_SIZE|malloc_good_size |size_t nbytes
#endif
+#if defined(PERL_IN_MALLOC_C)
+sn |int |adjust_size_and_find_bucket |NN size_t *nbytes_p
+#endif
AnpR |void* |get_context
Anp |void |set_context |NN void *t
diff --git a/embed.h b/embed.h
index 9b5125a342..605ecd4f56 100644
--- a/embed.h
+++ b/embed.h
@@ -1399,6 +1399,9 @@
#define stdize_locale(a) S_stdize_locale(aTHX_ a)
# endif
# endif
+# if defined(PERL_IN_MALLOC_C)
+#define adjust_size_and_find_bucket S_adjust_size_and_find_bucket
+# endif
# if defined(PERL_IN_MG_C)
#define magic_methcall1(a,b,c,d,e,f) S_magic_methcall1(aTHX_ a,b,c,d,e,f)
#define magic_methpack(a,b,c) S_magic_methpack(aTHX_ a,b,c)
diff --git a/malloc.c b/malloc.c
index 41d75da078..a0a762e9ac 100644
--- a/malloc.c
+++ b/malloc.c
@@ -1212,12 +1212,16 @@ cmp_pat_4bytes(unsigned char *s, size_t nbytes, const unsigned char *fill)
# define FILLCHECK_DEADBEEF(s, n) ((void)0)
#endif
-int
+STATIC int
S_adjust_size_and_find_bucket(size_t *nbytes_p)
{
- MEM_SIZE shiftr;
+ MEM_SIZE shiftr;
int bucket;
- size_t nbytes = *nbytes_p;
+ size_t nbytes;
+
+ PERL_ARGS_ASSERT_ADJUST_SIZE_AND_FIND_BUCKET;
+
+ nbytes = *nbytes_p;
/*
* Convert amount of memory requested into
@@ -1273,7 +1277,7 @@ Perl_malloc(size_t nbytes)
croak("%s", "panic: malloc");
#endif
- bucket = S_adjust_size_and_find_bucket(&nbytes);
+ bucket = adjust_size_and_find_bucket(&nbytes);
MALLOC_LOCK;
/*
* If nothing in hash bucket right now,
@@ -2173,7 +2177,7 @@ Perl_malloced_size(void *p)
MEM_SIZE
Perl_malloc_good_size(size_t wanted)
{
- return BUCKET_SIZE_REAL(S_adjust_size_and_find_bucket(&wanted));
+ return BUCKET_SIZE_REAL(adjust_size_and_find_bucket(&wanted));
}
# ifdef BUCKETS_ROOT2
diff --git a/proto.h b/proto.h
index 76ec13d1b9..a8c0b6dd24 100644
--- a/proto.h
+++ b/proto.h
@@ -5807,6 +5807,13 @@ STATIC char* S_stdize_locale(pTHX_ char* locs)
# endif
#endif
+#if defined(PERL_IN_MALLOC_C)
+STATIC int S_adjust_size_and_find_bucket(size_t *nbytes_p)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_ADJUST_SIZE_AND_FIND_BUCKET \
+ assert(nbytes_p)
+
+#endif
#if defined(PERL_IN_MG_C)
STATIC SV* S_magic_methcall1(pTHX_ SV *sv, const MAGIC *mg, SV *meth, U32 flags, int n, SV *val)
__attribute__nonnull__(pTHX_1)