From 5ac34d7cea2dd95258cadec543d0fbc3bd9d6ec3 Mon Sep 17 00:00:00 2001 From: Mikael Pettersson Date: Mon, 11 Aug 2025 16:51:21 +0200 Subject: [PATCH] libelf:read_sint36/1: simplify --- erlang/apps/lib/src/libelf.erl | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/erlang/apps/lib/src/libelf.erl b/erlang/apps/lib/src/libelf.erl index ebbef28..1839874 100644 --- a/erlang/apps/lib/src/libelf.erl +++ b/erlang/apps/lib/src/libelf.erl @@ -705,12 +705,6 @@ read_Sword(FP) -> read_sint36(FP). read_Uchar(FP) -> read_uint9(FP). read_Word(FP) -> read_uint36(FP). -read_sint36(FP) -> - case read_uint36(FP) of - {ok, UInt36} -> {ok, sext:sext(UInt36, 36)}; - {error, _Reason} = Error -> Error - end. - read_uint9(FP) -> case pdp10_stdio:fgetc(FP) of eof -> {error, {?MODULE, eof}}; @@ -721,6 +715,11 @@ read_uint18(FP) -> read(FP, 2, fun extint:uint18_from_ext/1). read_uint36(FP) -> read(FP, 4, fun extint:uint36_from_ext/1). +read_sint36(FP) -> read(FP, 4, fun sint36_from_ext/1). + +sint36_from_ext(Bytes) -> + sext:sext(extint:uint36_from_ext(Bytes), 36). + read(FP, N, ConvFun) when N >= 0 -> read(FP, N, ConvFun, []). read(_FP, 0, ConvFun, Acc) -> {ok, ConvFun(lists:reverse(Acc))};