aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/global.h
diff options
context:
space:
mode:
authorBjörn-Egil Dahlberg <egil@erlang.org>2015-09-25 17:03:02 +0200
committerBjörn-Egil Dahlberg <egil@erlang.org>2015-11-17 16:07:55 +0100
commit1391715d8bbba315e1509e60e6245159a009bd9b (patch)
tree0afa756ee9ed8bb0d88c441533cb778fe08e1b13 /erts/emulator/beam/global.h
parent8f8aa9c5c4e26e563c935e06f8346175fa15d876 (diff)
downloadotp-1391715d8bbba315e1509e60e6245159a009bd9b.tar.gz
otp-1391715d8bbba315e1509e60e6245159a009bd9b.tar.bz2
otp-1391715d8bbba315e1509e60e6245159a009bd9b.zip
Use copy literal range check in message passing and purging
Diffstat (limited to 'erts/emulator/beam/global.h')
-rw-r--r--erts/emulator/beam/global.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/erts/emulator/beam/global.h b/erts/emulator/beam/global.h
index f106b941ef..71d072fa7e 100644
--- a/erts/emulator/beam/global.h
+++ b/erts/emulator/beam/global.h
@@ -982,6 +982,12 @@ Eterm erl_is_function(Process* p, Eterm arg1, Eterm arg2);
/* beam_bif_load.c */
Eterm erts_check_process_code(Process *c_p, Eterm module, int allow_gc, int *redsp);
+typedef struct {
+ Eterm *ptr;
+ Uint sz;
+} copy_literals_t;
+
+extern copy_literals_t erts_clrange;
/* beam_load.c */
typedef struct {
@@ -1063,6 +1069,8 @@ typedef struct {
Eterm* shtable_start;
ErtsAlcType_t shtable_alloc_type;
Uint literal_size;
+ Eterm *range_ptr;
+ Uint range_sz;
} erts_shcopy_t;
#define INITIALIZE_SHCOPY(info) \
@@ -1071,6 +1079,8 @@ do { \
info.bitstore_start = info.bitstore_default; \
info.shtable_start = info.shtable_default; \
info.literal_size = 0; \
+ info.range_ptr = erts_clrange.ptr; \
+ info.range_sz = erts_clrange.sz; \
} while(0)
#define DESTROY_SHCOPY(info) \