[Gambas-bugtracker] Bug #2249: Make Array of Structs work correctly

bugtracker at gambaswiki.org bugtracker at gambaswiki.org
Fri Jun 11 18:55:52 CEST 2021


http://gambaswiki.org/bugtracker/edit?object=BUG.2249&from=L21haW4-

John ANDERSON reported a new bug.

Summary
-------

Make Array of Structs work correctly

Type             : Request
Priority         : High
Gambas version   : Master
Product          : Development Environment


Description
-----------

As you noted on Mailing lists, Array of Structs is reliable yet.

It would simplify code a lot if we didn't have to Alloc a pointer, write an array of structs to it with write memory stream, then read memory stream back after C function call, then Free pointer, etc.  That could be slow - we are testing now.  

It would be great if Arrays of structs worked consistently with all Structs, always.

Also if Object.SizeOf(MyStruct) returns the number of actual bytes MyStruct uses, then it would seem to be consistent to think that ObJect.SizeOf(MyStructArray) would return the total number of bytes in the array.  Or at least have a way for Gambas to tell us how many bytes it has reserved in the array of structs, so we can use that actual array size for C call with more automatic size_t information?


System information
------------------

[System]
Gambas=3.16.90
OperatingSystem=Linux
Kernel=5.4.0-74-generic
Architecture=x86_64
Distribution=Linux Mint 20.1 Ulyssa
Desktop=CINNAMON
Font=Ubuntu,10
Scale=7
Theme=mint-y-aqua
Language=en_US.UTF-8
Memory=7868M

[Libraries]
Cairo=libcairo.so.2.11600.0
Curl=libcurl.so.4.6.0
DBus=libdbus-1.so.3.19.11
GDK2=libgdk-x11-2.0.so.0.2400.32
GDK3=libgdk-3.so.0.2404.16
GStreamer=libgstreamer-1.0.so.0.1602.0
GTK+2=libgtk-x11-2.0.so.0.2400.32
GTK+3=libgtk-3.so.0.2404.16
OpenGL=libGL.so.1.7.0
Poppler=libpoppler.so.97.0.0
QT5=libQt5Core.so.5.12.8
SDL=libSDL-1.2.so.0.11.4
SQLite=libsqlite3.so.0.8.6

[Environment]
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
DEFAULTS_PATH=/usr/share/gconf/cinnamon.default.path
DESKTOP_SESSION=cinnamon
DISPLAY=:0
GB_GUI=gb.gtk3
GDMSESSION=cinnamon
GDM_LANG=en_US
GENICAM_CLPROTOCOL=/opt/matrox_imaging/mil/../drivers/genicam/v3_2/bin/
GENICAM_MAJOR=3
GENICAM_MINOR=2
GIO_LAUNCHED_DESKTOP_FILE=<home>/Desktop/gambas3.desktop
GIO_LAUNCHED_DESKTOP_FILE_PID=55397
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
GTK3_MODULES=xapp-gtk3-module
GTK_MODULES=gail:atk-bridge
GTK_OVERLAY_SCROLLING=1
HOME=<home>
INSIDE_NEMO_PYTHON=
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8
LOGNAME=<user>
MANDATORY_PATH=/usr/share/gconf/cinnamon.mandatory.path
MILDIR=/opt/matrox_imaging/mil
MIL_GENICAM_PATH=/opt/matrox_imaging/mil/../drivers/genicam
MIL_XML_REPOSITORY=/opt/matrox_imaging/mil/../drivers/genicam/v3_2/xml/GenApi
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/matrox_imaging/mil/../tools
PWD=<home>
QT_ACCESSIBILITY=1
QT_LOGGING_RULES=*.debug=false
QT_QPA_PLATFORMTHEME=qt5ct
SESSION_MANAGER=local/<hostname>:@/tmp/.ICE-unix/1595,unix/<hostname>:/tmp/.ICE-unix/1595
SHELL=/bin/bash
SHLVL=0
SSH_AGENT_PID=1771
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
TEMP=/tmp
TZ=:/etc/localtime
USER=<user>
XAUTHORITY=<home>/.Xauthority
XDG_CONFIG_DIRS=/etc/xdg/xdg-cinnamon:/etc/xdg
XDG_CURRENT_DESKTOP=X-Cinnamon
XDG_DATA_DIRS=/usr/share/cinnamon:/usr/share/gnome:<home>/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/<user>
XDG_RUNTIME_DIR=/run/user/1000
XDG_SEAT=seat0
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
XDG_SESSION_DESKTOP=cinnamon
XDG_SESSION_ID=c1
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
XDG_SESSION_TYPE=x11
XDG_VTNR=7




More information about the Bugtracker mailing list