145 Commits

Author SHA1 Message Date
3697849067 genbindings: use dynamic_cast's return value to verify override is safe 2025-01-18 17:57:16 +13:00
Jacek Sieka
929e4e630a Simplify delete
The subclassing structure in `miqt` is such that nothing ever inherits
from `MiqtVirtual` - also, for `MiqtVirtual` to work correctly when Qt
deletes an instance part of a tree of widgets, the technique can only be
used with types that already have a virtual destructor.

Therefore:
* make `MiqtVirtual` final to ensure nothing inherits from it by
accident
* remove `virtual` inheritance of its base class - since there is no MI
invonved and no further inheritance, there can also not be any diamond
inheritance structures - removing `virtual` makes inheritance a bit
cheaper
* remove `isSubclass` from `delete` function - C++ already calls the
most inherited destructor
* mark destructor `override` to verify said assumption
2025-01-18 17:46:50 +13:00
3a63a129ae
Merge pull request #124 from arnetheduck/cgo-export
Avoid dependency on exported go header
2025-01-11 15:21:00 +13:00
Jacek Sieka
a0c6344ecd Avoid dependency on exported go header
The expected type of the callback is already known from the AST - this
change reduces dependency on cgo specifics and makes the generated C ABI
entirely cgo-independent - in particular, there is no need to include
`_cgo_export.h` any more.
2025-01-07 12:55:40 +01:00
Jacek Sieka
765592cca2 Small fixes
* `stdlib` is not used / needed
* `miqt_strdup` doesn't exist
* consistently use nameprefix for `_ret`
2025-01-07 09:29:45 +01:00
641dbd6d21 genbindings/cabi: add automatic -D_Bool=bool handling 2024-12-11 19:55:32 +13:00
5a7a46e28f genbindings: use separate virtbase helper to get base pointers 2024-12-07 17:44:27 +13:00
5b25ae9cad genbindings: enums by reference also need c-style cast 2024-11-27 18:00:23 +13:00
bfbaeaf514 genbindings: add missing header includes for some container types 2024-11-26 20:09:30 +13:00
25e10f2824 genbindings/cabi: QFlags<>& use C-style cast 2024-11-26 19:52:29 +13:00
2a502f24ff genbindings: change simple operator== to use infix syntax 2024-11-22 18:58:56 +13:00
bbc75b8ef1 linuxonly: fix ifdef quirks for building on windows 2024-11-19 20:45:45 +13:00
b50870b9d9 genbindings: intptr_t-qintptr pointer casts require C-style casts 2024-11-19 20:00:35 +13:00
90de7178f2 genbindings: fix some cases of missing :: escaping 2024-11-19 19:59:55 +13:00
40abeecd54 genbindings/subclassing: accurate pointer type management for subclasses 2024-11-19 19:28:30 +13:00
6fa97722c5 genbindings: delete either subclass or direct class 2024-11-19 19:28:00 +13:00
fb56258334 genbindings: constructors return every subclass pointer 2024-11-19 19:27:19 +13:00
eca87471ee genbindings/types: pointer and return type fixes 2024-11-19 19:25:48 +13:00
943ccf7b3a genbindings: subclass support for all virtual methods (3/3) 2024-11-19 19:17:37 +13:00
58f212303e genbindings: subclass support for all virtual methods (2/3) 2024-11-19 19:17:37 +13:00
aa2fdf98ca genbindings: subclass support for all virtual methods (1/3) 2024-11-19 19:17:36 +13:00
d07996d2ed genbindings/headers: more detailed include guards, use pragma once 2024-11-17 19:18:02 +13:00
f6acae63bb genbindings/cabi: normalize container comments 2024-11-17 19:17:48 +13:00
58ec6e1821 genbindings: add QPair<> support 2024-11-17 19:17:31 +13:00
dc39b7ca65 genbindings/containers: fixes for special characters in container names 2024-11-17 19:17:22 +13:00
598b8bdb89 genbindings/cabi: inline return statements in emitAssignCppToCabi 2024-11-17 19:17:09 +13:00
caee076af8 genbindings/go: implement cabi type roundtrips for pointer types 2024-11-17 19:17:03 +13:00
5a3c3556a1 genbindings/intermediate: add Void() helper method 2024-11-17 19:16:51 +13:00
e41f991a23 qnetwork: add support in genbindings 2024-11-06 18:38:25 +13:00
a009008525 genbindings: add qmap/qhash support 2024-11-04 21:33:45 +13:00
69011a5acb genbindings/cabi: refactor and simplify getReferencedTypes 2024-11-04 20:48:56 +13:00
b53707c7cf genbindings: pass miqt_array in CABI by value 2024-11-04 20:18:11 +13:00
ba423f153a genbindings: implement "BecomesNonConstInVersion" quirk support 2024-10-26 12:35:01 +13:00
aed94883cf genbindings: escape hyphens in generated header include guards 2024-10-21 19:10:31 +13:00
301fa27e83 genbindings/main: uniform handling for package subdirectories 2024-10-21 19:10:31 +13:00
bb0132e0d5 genbindings/qbytearray: project as []byte 2024-10-19 13:06:53 +13:00
434c45273a miqt: pass all miqt_string by value, not by pointer 2024-10-19 13:06:53 +13:00
f87002914d genbindings/cabi: emit class typedef even if there is no header 2024-10-19 13:06:53 +13:00
88ef4e922c genbindings: multi-package support 2024-10-16 18:07:05 +13:00
562590fa96 libmiqt: move binding helpers to standalone package, support const_char 2024-10-16 18:05:07 +13:00
0154e3507b genbindings: marshal cgo.Handle via intptr_t instead of void* 2024-10-13 19:05:52 +13:00
c783029317 genbindings/integers: c-style cast for qsizetype, qintptr pointers 2024-10-11 18:40:12 +13:00
f733ce29bc genbindings/signals: support connecting to a const signal 2024-10-11 18:40:12 +13:00
60600530c6 genbindings/ints: ssize_t support 2024-10-11 18:40:06 +13:00
869e316715 genbindings/qflags: emit qflags as inner type 2024-09-20 18:41:22 +12:00
e2fd134509 genbindings/qset: fixes for qset marshalling 2024-09-18 13:27:53 +12:00
eae85ac325 genbindings: preserve const/ptr attributes through typedefs 2024-09-18 13:08:18 +12:00
99aaf69b13 genbindings: remove uintptr fallbacks for more and accurate enum/typedef handling 2024-09-18 12:11:48 +12:00
b7a488dac0 genbindings: more accurate enum type handling 2024-09-18 09:35:53 +12:00
25008355a7 genbindings: initial QSet<> support 2024-09-17 21:48:26 +12:00