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 b127ecd942c3a40375d0d4277fd0d4d817c7e168
Author: [email protected] <[email protected]>
AuthorDate: Tue Mar 31 14:42:26 2026 -0600

    fix(ego-stats): sync blocklist with ego-gen, add Eina_Value support
    
    Remove 5 entries from stats blocklist that ego-gen now generates
    (Eina_Slice setters + Eina_Value message_send). Add Eina_Value
    to known structs. Coverage now 91.8% (1179/1284).
---
 cmd/ego-stats/main.go    |   8 --------
 cmd/ego-stats/typemap.go |   8 +++++++-
 ego-stats                | Bin 2793792 -> 2793600 bytes
 3 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/cmd/ego-stats/main.go b/cmd/ego-stats/main.go
index 37caf58..4cde0ee 100644
--- a/cmd/ego-stats/main.go
+++ b/cmd/ego-stats/main.go
@@ -100,23 +100,16 @@ var methodBlocklistAnnotated = []blockedEntry{
 	{"efl_gfx_buffer_managed_get", ReasonOutParamStruct},
 	// efl.Gfx.Path
 	{"efl_gfx_path_bounds_get", ReasonOutParamStruct},
-	// efl.Input_Text — struct-by-value param
-	{"efl_input_text_input_panel_imdata_set", ReasonStructByValue},
-	// efl.Io.Copier — line_delimiter takes Eina_Slice by value (struct parameter)
-	{"efl_io_copier_line_delimiter_set", ReasonStructByValue},
 	// efl.Io — returns/takes Eina_Slice or Eina_Error
 	{"efl_io_reader_read", ReasonOutParamStruct},
 	{"efl_io_writer_write", ReasonOutParamStruct},
 	{"efl_io_queue_slice_get", ReasonOutParamStruct},
-	// efl.Io.BufferedStream
-	{"efl_io_buffered_stream_line_delimiter_set", ReasonStructByValue},
 	// efl.Io.Model — callback filter; class also blocklisted
 	{"efl_io_model_children_filter_set", ReasonCallback},
 	{"efl_io_model_path_set", ReasonNotInHeader},
 	// efl.Layout — struct-valued or wrong arg count
 	{"efl_layout_calc_size_min", ReasonOutParamStruct},
 	{"efl_layout_calc_parts_extends", ReasonOutParamStruct},
-	{"efl_layout_signal_message_send", ReasonStructByValue},
 	// efl.Net — internal state setters; not in public header
 	{"efl_net_dialer_address_dial_set", ReasonNotInHeader},
 	{"efl_net_dialer_connected_set", ReasonNotInHeader},
@@ -133,7 +126,6 @@ var methodBlocklistAnnotated = []blockedEntry{
 	{"efl_net_socket_fd_family_set", ReasonNotInHeader},
 	// efl.Net.Socket.Udp — ECORE_CON_API visibility (not EAPI)
 	{"efl_net_socket_udp_init", ReasonNotInHeader},
-	{"efl_net_ip_address_set", ReasonStructByValue},
 	{"efl_net_ip_address_sockaddr_set", ReasonGlobalFunction},
 	{"efl_net_ip_address_create", ReasonGlobalFunction},
 	{"efl_net_ip_address_create_sockaddr", ReasonGlobalFunction},
diff --git a/cmd/ego-stats/typemap.go b/cmd/ego-stats/typemap.go
index ead6885..0cb06c8 100644
--- a/cmd/ego-stats/typemap.go
+++ b/cmd/ego-stats/typemap.go
@@ -61,13 +61,15 @@ func NeedsStringConversion(ctype string) bool {
 
 // IsKnownStruct reports whether a C type is a known struct type that can be
 // marshalled field-by-field between Go and C.
+// Eina_Value is included because ego-gen maps it to *efl.Value and generates
+// proper bindings via the .Ptr() indirection — it is not an unknown struct.
 func IsKnownStruct(ctype string) bool {
 	ct := strings.TrimSpace(ctype)
 	ct = strings.TrimPrefix(ct, "const ")
 	ct = strings.TrimSpace(ct)
 	switch ct {
 	case "Eina_Size2D", "Eina_Position2D", "Eina_Rect", "Eina_Vector2",
-		"Eina_Slice", "Eina_Rw_Slice":
+		"Eina_Slice", "Eina_Rw_Slice", "Eina_Value":
 		return true
 	}
 	return false
@@ -114,6 +116,10 @@ func isMultiValueCompatible(ctype string) bool {
 	if NeedsStringConversion(ctype) {
 		return true
 	}
+	// Eina_Value is mapped to *efl.Value by ego-gen and is fully supported.
+	if IsKnownStruct(ctype) {
+		return true
+	}
 	// Enum typedef: non-pointer, non-struct type mapping to unsafe.Pointer.
 	if CTypeToGo(ctype) == "unsafe.Pointer" && !isCPointerType(ctype) && !IsStructType(ctype) {
 		return true
diff --git a/ego-stats b/ego-stats
index c411ba3..2a1bdcd 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