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.

Reply via email to