aboutsummaryrefslogtreecommitdiff
path: root/body/fltk-draw.adb
diff options
context:
space:
mode:
authorJedidiah Barber <contact@jedbarber.id.au>2025-04-10 13:52:17 +1200
committerJedidiah Barber <contact@jedbarber.id.au>2025-04-10 13:52:17 +1200
commit97df98beefa9cc088a5b68899dd90baf67d175c5 (patch)
treed9754bb8274c04d9b351296a09bd00c5685c5ec3 /body/fltk-draw.adb
parent8e59d5aa80705a03ad39d925c1c2ca0523d964a8 (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.adb17
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