diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f864ded..088822d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: name: Test OTP ${{matrix.otp_vsn}} strategy: matrix: - otp_vsn: ['28', '27', '26'] + otp_vsn: ['29', '28', '27'] rebar_vsn: ['3.27'] runs-on: 'ubuntu-24.04' env: @@ -44,7 +44,7 @@ jobs: name: Benchmark suite execution OTP ${{matrix.otp_vsn}} strategy: matrix: - otp_vsn: ['28', '27'] + otp_vsn: ['29', '28'] elixir_vsn: ['1.19'] rebar_vsn: ['3.27'] runs-on: 'ubuntu-24.04' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ab30256..1463505 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,7 +15,7 @@ jobs: - uses: actions/checkout@v6 - uses: erlef/setup-beam@v1 with: - otp-version: "28" + otp-version: "29" rebar3-version: "3.27" - run: rebar3 compile - run: rebar3 hex publish -r hexpm --yes diff --git a/.github/workflows/revert-release.yml b/.github/workflows/revert-release.yml index 42f8770..165312d 100644 --- a/.github/workflows/revert-release.yml +++ b/.github/workflows/revert-release.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@v6 - uses: erlef/setup-beam@v1 with: - otp-version: "28" + otp-version: "29" rebar3-version: "3.27" - run: rebar3 hex publish --revert ${{ inputs.version }} -r hexpm --yes env: diff --git a/src/exml.erl b/src/exml.erl index c37626f..1e53575 100644 --- a/src/exml.erl +++ b/src/exml.erl @@ -206,7 +206,8 @@ to_iolist(Elements, Pretty) when is_list(Elements) -> -spec to_binary_nif(element(), prettify()) -> binary(). to_binary_nif(#xmlel{} = Element, Pretty) -> - case catch exml_nif:to_binary(Element, Pretty) of - {'EXIT', Reason} -> erlang:error({badxml, Element, Reason}); + try exml_nif:to_binary(Element, Pretty) of Result when is_binary(Result) -> Result + catch + _Class:Reason -> erlang:error({badxml, Element, Reason}) end.