aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/external.h
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2017-08-25 18:46:58 +0200
committerSverker Eriksson <[email protected]>2017-11-15 20:13:03 +0100
commite4d28f70133af9b3b8c320fe5e70e2086830874d (patch)
tree72db3931c672d51e06281986b3f5a8685bd3ff75 /erts/emulator/beam/external.h
parent42dadd12ac6b6977513a6edd73ff6137488c4a4a (diff)
downloadotp-e4d28f70133af9b3b8c320fe5e70e2086830874d.tar.gz
otp-e4d28f70133af9b3b8c320fe5e70e2086830874d.tar.bz2
otp-e4d28f70133af9b3b8c320fe5e70e2086830874d.zip
erts: Transcode tuple fallbacks
When finalizing outgoing distribution messages we transcode them into using tuple fallbacks if the receiver does not support bitstrings and export-funs. This can only happen if the message was first encoded toward a pending connection when the receiver was unknown. It's an optimistic approach optmimized for modern beam nodes, that expect real bitstrings and funs (since <R13). Only erl_interface/jinterface lack this support.
Diffstat (limited to 'erts/emulator/beam/external.h')
-rw-r--r--erts/emulator/beam/external.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/erts/emulator/beam/external.h b/erts/emulator/beam/external.h
index 11044b17ef..f9f8abcc27 100644
--- a/erts/emulator/beam/external.h
+++ b/erts/emulator/beam/external.h
@@ -154,7 +154,7 @@ void erts_finalize_atom_cache_map(ErtsAtomCacheMap *, Uint32);
Uint erts_encode_ext_dist_header_size(ErtsAtomCacheMap *);
byte *erts_encode_ext_dist_header_setup(byte *, ErtsAtomCacheMap *);
-void erts_encode_ext_dist_header_finalize(ErtsDistOutputBuf*, ErtsAtomCache *, Uint32);
+Sint erts_encode_ext_dist_header_finalize(ErtsDistOutputBuf*, DistEntry *, Uint32 dflags, Sint reds);
struct erts_dsig_send_context;
int erts_encode_dist_ext_size(Eterm, Uint32, ErtsAtomCacheMap*, Uint* szp);
int erts_encode_dist_ext_size_int(Eterm term, struct erts_dsig_send_context* ctx, Uint* szp);
@@ -195,7 +195,7 @@ void erts_binary2term_abort(ErtsBinary2TermState *);
Eterm erts_binary2term_create(ErtsBinary2TermState *, ErtsHeapFactory*);
int erts_debug_max_atom_out_cache_index(void);
int erts_debug_atom_to_out_cache_index(Eterm);
-
+void transcode_free_ctx(DistEntry* dep);
#if ERTS_GLB_INLINE_INCL_FUNC_DEF