diff options
author | Björn Gustavsson <[email protected]> | 2015-10-22 13:15:25 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2015-10-22 14:07:04 +0200 |
commit | 32ba359b05658960b86f7587b61b46d1fb2021be (patch) | |
tree | eb89f4b73ee601d0f71774823e2b8c84f9eebfe6 /lib/stdlib/src/beam_lib.erl | |
parent | a76cc1d337c0bf44ecefebeccac2d08e496ba7e8 (diff) | |
download | otp-32ba359b05658960b86f7587b61b46d1fb2021be.tar.gz otp-32ba359b05658960b86f7587b61b46d1fb2021be.tar.bz2 otp-32ba359b05658960b86f7587b61b46d1fb2021be.zip |
beam_lib: Document all_chunks/1 and build_module/1
beam_lib:all_chunks/1 and beam_lib:build_module/1 can be useful
for special-purpose stripping, for example to remove the "Line"
chunk.
Diffstat (limited to 'lib/stdlib/src/beam_lib.erl')
-rw-r--r-- | lib/stdlib/src/beam_lib.erl | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/lib/stdlib/src/beam_lib.erl b/lib/stdlib/src/beam_lib.erl index b93ce97cd3..cbbab088f4 100644 --- a/lib/stdlib/src/beam_lib.erl +++ b/lib/stdlib/src/beam_lib.erl @@ -308,6 +308,17 @@ make_crypto_key(des3_cbc=Type, String) -> <<K3:8/binary,IVec:8/binary>> = erlang:md5([First|reverse(String)]), {Type,[K1,K2,K3],IVec,8}. +-spec build_module(Chunks) -> {'ok', Binary} when + Chunks :: [{chunkid(), dataB()}], + Binary :: binary(). + +build_module(Chunks0) -> + Chunks = list_to_binary(build_chunks(Chunks0)), + Size = byte_size(Chunks), + 0 = Size rem 4, % Assertion: correct padding? + {ok, <<"FOR1", (Size+4):32, "BEAM", Chunks/binary>>}. + + %% %% Local functions %% @@ -419,12 +430,6 @@ strip_file(File) -> end end. -build_module(Chunks0) -> - Chunks = list_to_binary(build_chunks(Chunks0)), - Size = byte_size(Chunks), - 0 = Size rem 4, % Assertion: correct padding? - {ok, <<"FOR1", (Size+4):32, "BEAM", Chunks/binary>>}. - build_chunks([{Id, Data} | Chunks]) -> BId = list_to_binary(Id), Size = byte_size(Data), |