diff options
author | Jedidiah Barber <contact@jedbarber.id.au> | 2025-04-10 13:52:17 +1200 |
---|---|---|
committer | Jedidiah Barber <contact@jedbarber.id.au> | 2025-04-10 13:52:17 +1200 |
commit | 97df98beefa9cc088a5b68899dd90baf67d175c5 (patch) | |
tree | d9754bb8274c04d9b351296a09bd00c5685c5ec3 /body/fltk-draw.adb | |
parent | 8e59d5aa80705a03ad39d925c1c2ca0523d964a8 (diff) |
Addresses of first element of null arrays are now null pointers
Diffstat (limited to 'body/fltk-draw.adb')
-rw-r--r-- | body/fltk-draw.adb | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/body/fltk-draw.adb b/body/fltk-draw.adb index c99d5cd..92b3ebc 100644 --- a/body/fltk-draw.adb +++ b/body/fltk-draw.adb @@ -1024,7 +1024,9 @@ package body FLTK.Draw is end if; end if; fl_draw_draw_image - (Storage.To_Integer (Data (Data'First)'Address), + ((if Data'Length > 0 + then Storage.To_Integer (Data (Data'First)'Address) + else Null_Pointer), Interfaces.C.int (X), Interfaces.C.int (Y), Interfaces.C.int (W), @@ -1093,7 +1095,9 @@ package body FLTK.Draw is end if; end if; fl_draw_draw_image_mono - (Storage.To_Integer (Data (Data'First)'Address), + ((if Data'Length > 0 + then Storage.To_Integer (Data (Data'First)'Address) + else Null_Pointer), Interfaces.C.int (X), Interfaces.C.int (Y), Interfaces.C.int (W), @@ -1174,13 +1178,18 @@ package body FLTK.Draw is Buffer : Storage.Integer_Address; begin Buffer := fl_draw_read_image - (Storage.To_Integer (Result (Result'First)'Address), + ((if Result'Length > 0 + then Storage.To_Integer (Result (Result'First)'Address) + else Null_Pointer), Interfaces.C.int (X), Interfaces.C.int (Y), Interfaces.C.int (W), Interfaces.C.int (H), Interfaces.C.int (Alpha)); - pragma Assert (Buffer = Storage.To_Integer (Result (Result'First)'Address)); + pragma Assert + ((if Result'Length > 0 + then Buffer = Storage.To_Integer (Result (Result'First)'Address) + else Buffer = Null_Pointer)); return Result; exception when Chk.Assertion_Error => raise Internal_FLTK_Error with |