From f8a74edc54755653490dc26550a8f906d98dde01 Mon Sep 17 00:00:00 2001
From: Thomas <thomas@sctr.net>
Date: Fri, 10 Jan 2025 10:00:01 -0600
Subject: [PATCH] PHP 8.4 support

---
 .github/workflows/ci.yml | 11 +++++++----
 src/Exception.php        |  2 +-
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index efa5647..5d60e0f 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -5,7 +5,7 @@ on: [ push, pull_request ]
 jobs:
   CI:
     name: ${{ matrix.php }}
-    runs-on: ubuntu-22.04
+    runs-on: ubuntu-24.04
     strategy:
       fail-fast: false
       matrix:
@@ -15,21 +15,24 @@ jobs:
           - php: '8.1'
           - php: '8.2'
           - php: '8.3'
+          - php: '8.3'
+          - php: '8.4'
 
     steps:
       - name: Setup PHP
         uses: shivammathur/setup-php@v2
         with:
           php-version: ${{ matrix.php }}
-          ini-values: zend.max_allowed_stack_size=-1
+          ini-values: zend.max_allowed_stack_size=-1,ffi.enable=true
+          extensions: ffi, exif
           tools: composer:v2
           coverage: none
 
       - name: Checkout code
-        uses: actions/checkout@v3
+        uses: actions/checkout@v4
 
       - name: Install vips
-        run: sudo apt install -y libvips --no-install-recommends
+        run: sudo apt install -y --no-install-recommends libvips
 
       - name: Install composer dependencies
         run: |
diff --git a/src/Exception.php b/src/Exception.php
index ce5df1d..a3704e7 100644
--- a/src/Exception.php
+++ b/src/Exception.php
@@ -51,7 +51,7 @@
  */
 class Exception extends \Exception
 {
-    public function __construct($message = "", $code = 0, \Throwable $previous = null)
+    public function __construct($message = "", $code = 0, ?\Throwable $previous = null)
     {
         if ($message == "") {
             $message = "libvips error: " . FFI::vips()->vips_error_buffer();