diff options
author | Björn-Egil Dahlberg <[email protected]> | 2015-09-17 19:30:08 +0200 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2015-11-17 14:45:53 +0100 |
commit | 5d2d888f368ba8ca0098d8bd9936ca9d67df7d3b (patch) | |
tree | 6ce6157bfae905fa2a7f0c3b5f102dbab2ef4fa4 /erts/emulator/beam/global.h | |
parent | 748c73f1687b2375d4c607487f40036ba990c4c7 (diff) | |
download | otp-5d2d888f368ba8ca0098d8bd9936ca9d67df7d3b.tar.gz otp-5d2d888f368ba8ca0098d8bd9936ca9d67df7d3b.tar.bz2 otp-5d2d888f368ba8ca0098d8bd9936ca9d67df7d3b.zip |
Copy literals in copy sharing
Diffstat (limited to 'erts/emulator/beam/global.h')
-rw-r--r-- | erts/emulator/beam/global.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/erts/emulator/beam/global.h b/erts/emulator/beam/global.h index bdee20969d..f106b941ef 100644 --- a/erts/emulator/beam/global.h +++ b/erts/emulator/beam/global.h @@ -1062,6 +1062,7 @@ typedef struct { Eterm shtable_default[DEF_ESTACK_SIZE]; Eterm* shtable_start; ErtsAlcType_t shtable_alloc_type; + Uint literal_size; } erts_shcopy_t; #define INITIALIZE_SHCOPY(info) \ @@ -1069,6 +1070,7 @@ do { \ info.queue_start = info.queue_default; \ info.bitstore_start = info.bitstore_default; \ info.shtable_start = info.shtable_default; \ + info.literal_size = 0; \ } while(0) #define DESTROY_SHCOPY(info) \ @@ -1094,7 +1096,9 @@ Eterm copy_shared_perform(Eterm, Uint, erts_shcopy_t*, Eterm**, ErlOffHeap*, Uin Uint size_shared(Eterm); -Eterm copy_struct(Eterm, Uint, Eterm**, ErlOffHeap*); +Eterm copy_struct_x(Eterm, Uint, Eterm**, ErlOffHeap*, Uint* bsz); +#define copy_struct(Obj,Sz,HPP,OH) \ + copy_struct_x(Obj,Sz,HPP,OH,NULL) Eterm copy_shallow(Eterm*, Uint, Eterm**, ErlOffHeap*); void erts_move_multi_frags(Eterm** hpp, ErlOffHeap*, ErlHeapFragment* first, |