@@ -5,7 +5,7 @@ mod global_state;
55mod host_command;
66mod logging;
77mod renderer;
8- mod window_state ;
8+ mod window ;
99
1010use std:: { ffi:: { CStr , c_char} , sync:: Arc } ;
1111
@@ -115,7 +115,10 @@ pub extern "C" fn gpui_render_frame(
115115 children
116116 ) ;
117117
118- let window_state = GLOBAL_STATE . get_window_state ( window_id) ;
118+ let Some ( window) = GLOBAL_STATE . get_window ( window_id) else {
119+ log:: error!( "gpui_render_frame: window {} not found" , window_id) ;
120+ return ;
121+ } ;
119122
120123 let element = Arc :: new ( ReactElement {
121124 global_id,
@@ -126,7 +129,8 @@ pub extern "C" fn gpui_render_frame(
126129 event_handlers : None ,
127130 } ) ;
128131
129- let mut element_map = window_state
132+ let mut element_map = window
133+ . state ( )
130134 . element_map
131135 . lock ( )
132136 . expect ( "Failed to acquire element_map lock in gpui_render_frame" ) ;
@@ -148,11 +152,11 @@ pub extern "C" fn gpui_render_frame(
148152
149153 drop ( element_map) ;
150154
151- window_state . set_root_element_id ( global_id) ;
155+ window . state ( ) . set_root_element_id ( global_id) ;
152156
153- window_state . rebuild_tree ( global_id, & children) ;
157+ window . state ( ) . rebuild_tree ( global_id, & children) ;
154158
155- window_state . update_element_tree ( ) ;
159+ window . state ( ) . update_element_tree ( ) ;
156160
157161 send_host_command ( HostCommand :: TriggerRender { window_id } ) ;
158162
@@ -166,8 +170,11 @@ pub extern "C" fn gpui_render_frame(
166170pub extern "C" fn gpui_trigger_render ( window_id_ptr : * const u8 , _result : * mut FfiResult ) {
167171 unsafe {
168172 let window_id = ptr_to_u64 ( window_id_ptr) ;
169- let window_state = GLOBAL_STATE . get_window_state ( window_id) ;
170- window_state. increment_render_count ( ) ;
173+ let Some ( window) = GLOBAL_STATE . get_window ( window_id) else {
174+ log:: error!( "gpui_render_frame: window {} not found" , window_id) ;
175+ return ;
176+ } ;
177+ window. state ( ) . increment_render_count ( ) ;
171178 send_host_command ( HostCommand :: TriggerRender { window_id } ) ;
172179 }
173180}
@@ -197,9 +204,13 @@ pub extern "C" fn gpui_batch_update_elements(
197204
198205 log:: info!( "Batch update: Processing {} elements for window {}" , count, window_id) ;
199206
200- let window_state = GLOBAL_STATE . get_window_state ( window_id) ;
207+ let Some ( window) = GLOBAL_STATE . get_window ( window_id) else {
208+ log:: error!( "gpui_render_frame: window {} not found" , window_id) ;
209+ return ;
210+ } ;
201211
202- let mut element_map = window_state
212+ let mut element_map = window
213+ . state ( )
203214 . element_map
204215 . lock ( )
205216 . expect ( "Failed to acquire element_map lock in gpui_batch_update_elements" ) ;
@@ -258,7 +269,7 @@ pub extern "C" fn gpui_batch_update_elements(
258269 // window_state.update_element_tree();
259270 send_host_command ( HostCommand :: TriggerRender { window_id } ) ;
260271
261- let trigger = window_state . get_render_count ( ) ;
272+ let trigger = window . state ( ) . get_render_count ( ) ;
262273 log:: debug!( "Triggering render, current count: {}" , trigger) ;
263274
264275 * result = FfiResult :: success ( ) ;
0 commit comments