This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch main
in repository ego.
View the commit online.
commit 33504a336eae8b11880d53972e2060723618a468
Author: [email protected] <[email protected]>
AuthorDate: Wed Apr 1 09:23:58 2026 -0600
fix(ego-gen): unblock Pack_Table, fix Eo key indexed property counting
Remove stale table_size_set blocklist entry. Fix ego-stats
isSupportedKeyType to accept Eo class pointers as indexed
property keys. Pack_Table reaches 100%. Coverage 95.2% (1229/1291).
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
---
cmd/ego-gen/main.go | 2 --
cmd/ego-stats/main.go | 2 --
cmd/ego-stats/typemap.go | 8 ++++++--
efl/canvas/layout_part_invalid.go | 13 +++++++++++++
efl/canvas/layout_part_table.go | 13 +++++++++++++
efl/eo/pack_table.go | 13 +++++++++++++
efl/ui/layout_part_table.go | 13 +++++++++++++
efl/ui/table.go | 13 +++++++++++++
ego-stats | Bin 2792456 -> 2792416 bytes
9 files changed, 71 insertions(+), 6 deletions(-)
diff --git a/cmd/ego-gen/main.go b/cmd/ego-gen/main.go
index 8b73db6..89fcbb0 100644
--- a/cmd/ego-gen/main.go
+++ b/cmd/ego-gen/main.go
@@ -54,8 +54,6 @@ var methodBlocklist = map[string]bool{
// efl.Object — struct-by-pointer mismatch in event forwarder methods
"efl_event_callback_forwarder_priority_add": true,
"efl_event_callback_forwarder_del": true,
- // efl.Pack_Table — requires two separate size arguments; Eolian reports as one
- "efl_pack_table_size_set": true,
// efl.ThreadIO — callback params handled via callback trampoline generation.
// efl.Input.Pointer — position setters now handled via known struct support.
// efl.Text_Cursor.Object — struct-return methods now handled via struct-return support.
diff --git a/cmd/ego-stats/main.go b/cmd/ego-stats/main.go
index 2ff3b59..9dbd0d5 100644
--- a/cmd/ego-stats/main.go
+++ b/cmd/ego-stats/main.go
@@ -104,8 +104,6 @@ var methodBlocklistAnnotated = []blockedEntry{
{"efl_event_callback_forwarder_priority_add", ReasonStructByValue},
{"efl_event_callback_forwarder_del", ReasonStructByValue},
{"efl_event_global_freeze_count_get", ReasonGlobalFunction},
- // efl.Pack_Table
- {"efl_pack_table_size_set", ReasonWrongArgCount},
// eio.Sentry — not in Elementary.h (separate library)
{"eio_sentry_add", ReasonNotInHeader},
{"eio_sentry_fallback_check", ReasonNotInHeader},
diff --git a/cmd/ego-stats/typemap.go b/cmd/ego-stats/typemap.go
index 0cb06c8..1d751d1 100644
--- a/cmd/ego-stats/typemap.go
+++ b/cmd/ego-stats/typemap.go
@@ -172,9 +172,13 @@ func isSupportedKeyType(ctype string) bool {
if IsStructType(ctype) {
return false
}
- // If the type maps to unsafe.Pointer, reject pointer types but allow
- // enum typedefs (non-pointer, non-struct types).
+ // If the type maps to unsafe.Pointer, allow Eo class pointers and enum
+ // typedefs; reject other pointer types (void *, Eina_File *, etc.).
if CTypeToGo(ctype) == "unsafe.Pointer" {
+ // Eo class pointers are supported as keys (wrapped via efl.Objecter).
+ if isEoType(ctype) {
+ return true
+ }
if !isCPointerType(ctype) {
// Non-pointer type mapping to unsafe.Pointer → enum typedef; supported.
return true
diff --git a/efl/canvas/layout_part_invalid.go b/efl/canvas/layout_part_invalid.go
index 1cd9f63..091f135 100644
--- a/efl/canvas/layout_part_invalid.go
+++ b/efl/canvas/layout_part_invalid.go
@@ -230,6 +230,19 @@ func (o *LayoutPartInvalid) SetContent(val efl.Objecter) {
C.efl_content_set((*C.Eo)(o.Eo()), (*C.Eo)(val.Eo()))
}
+// TableSize returns the TableSize property of the LayoutPartInvalid.
+func (o *LayoutPartInvalid) TableSize() (cols int, rows int) {
+ var cCols C.int
+ var cRows C.int
+ C.efl_pack_table_size_get((*C.Eo)(o.Eo()), &cCols, &cRows)
+ return int(cCols), int(cRows)
+}
+
+// SetTableSize sets the TableSize property of the LayoutPartInvalid.
+func (o *LayoutPartInvalid) SetTableSize(cols int, rows int) {
+ C.efl_pack_table_size_set((*C.Eo)(o.Eo()), C.int(cols), C.int(rows))
+}
+
// TableColumns returns the TableColumns property of the LayoutPartInvalid.
func (o *LayoutPartInvalid) TableColumns() int {
return int(C.efl_pack_table_columns_get((*C.Eo)(o.Eo())))
diff --git a/efl/canvas/layout_part_table.go b/efl/canvas/layout_part_table.go
index 90ba8fb..93e8ec5 100644
--- a/efl/canvas/layout_part_table.go
+++ b/efl/canvas/layout_part_table.go
@@ -171,6 +171,19 @@ func NewLayoutPartTable(parent efl.Objecter, opts ...efl.Option) *LayoutPartTabl
return wrapLayoutPartTable(result)
}
+// TableSize returns the TableSize property of the LayoutPartTable.
+func (o *LayoutPartTable) TableSize() (cols int, rows int) {
+ var cCols C.int
+ var cRows C.int
+ C.efl_pack_table_size_get((*C.Eo)(o.Eo()), &cCols, &cRows)
+ return int(cCols), int(cRows)
+}
+
+// SetTableSize sets the TableSize property of the LayoutPartTable.
+func (o *LayoutPartTable) SetTableSize(cols int, rows int) {
+ C.efl_pack_table_size_set((*C.Eo)(o.Eo()), C.int(cols), C.int(rows))
+}
+
// TableColumns returns the TableColumns property of the LayoutPartTable.
func (o *LayoutPartTable) TableColumns() int {
return int(C.efl_pack_table_columns_get((*C.Eo)(o.Eo())))
diff --git a/efl/eo/pack_table.go b/efl/eo/pack_table.go
index 96954be..62f57fc 100644
--- a/efl/eo/pack_table.go
+++ b/efl/eo/pack_table.go
@@ -141,6 +141,19 @@ func wrapPackTable(ptr unsafe.Pointer) *PackTable {
return o
}
+// TableSize returns the TableSize property of the PackTable.
+func (o *PackTable) TableSize() (cols int, rows int) {
+ var cCols C.int
+ var cRows C.int
+ C.efl_pack_table_size_get((*C.Eo)(o.Eo()), &cCols, &cRows)
+ return int(cCols), int(cRows)
+}
+
+// SetTableSize sets the TableSize property of the PackTable.
+func (o *PackTable) SetTableSize(cols int, rows int) {
+ C.efl_pack_table_size_set((*C.Eo)(o.Eo()), C.int(cols), C.int(rows))
+}
+
// TableColumns returns the TableColumns property of the PackTable.
func (o *PackTable) TableColumns() int {
return int(C.efl_pack_table_columns_get((*C.Eo)(o.Eo())))
diff --git a/efl/ui/layout_part_table.go b/efl/ui/layout_part_table.go
index 3cb4e4d..37a1d8b 100644
--- a/efl/ui/layout_part_table.go
+++ b/efl/ui/layout_part_table.go
@@ -172,6 +172,19 @@ func NewLayoutPartTable(parent efl.Objecter, opts ...efl.Option) *LayoutPartTabl
return wrapLayoutPartTable(result)
}
+// TableSize returns the TableSize property of the LayoutPartTable.
+func (o *LayoutPartTable) TableSize() (cols int, rows int) {
+ var cCols C.int
+ var cRows C.int
+ C.efl_pack_table_size_get((*C.Eo)(o.Eo()), &cCols, &cRows)
+ return int(cCols), int(cRows)
+}
+
+// SetTableSize sets the TableSize property of the LayoutPartTable.
+func (o *LayoutPartTable) SetTableSize(cols int, rows int) {
+ C.efl_pack_table_size_set((*C.Eo)(o.Eo()), C.int(cols), C.int(rows))
+}
+
// TableColumns returns the TableColumns property of the LayoutPartTable.
func (o *LayoutPartTable) TableColumns() int {
return int(C.efl_pack_table_columns_get((*C.Eo)(o.Eo())))
diff --git a/efl/ui/table.go b/efl/ui/table.go
index 0e11202..08bc833 100644
--- a/efl/ui/table.go
+++ b/efl/ui/table.go
@@ -221,6 +221,19 @@ func (o *Table) SetHomogeneous(homogeneoush bool, homogeneousv bool) {
}())
}
+// TableSize returns the TableSize property of the Table.
+func (o *Table) TableSize() (cols int, rows int) {
+ var cCols C.int
+ var cRows C.int
+ C.efl_pack_table_size_get((*C.Eo)(o.Eo()), &cCols, &cRows)
+ return int(cCols), int(cRows)
+}
+
+// SetTableSize sets the TableSize property of the Table.
+func (o *Table) SetTableSize(cols int, rows int) {
+ C.efl_pack_table_size_set((*C.Eo)(o.Eo()), C.int(cols), C.int(rows))
+}
+
// TableColumns returns the TableColumns property of the Table.
func (o *Table) TableColumns() int {
return int(C.efl_pack_table_columns_get((*C.Eo)(o.Eo())))
diff --git a/ego-stats b/ego-stats
index 2bd46fc..7b3d89d 100755
Binary files a/ego-stats and b/ego-stats differ
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.