@@ -125,6 +125,12 @@ impl TextInfo {
125125 max_content_height : Len ,
126126 ) -> Size < Len > {
127127 let text_len = self . text_len ;
128+ if text_len == 0 {
129+ println ! (
130+ "text_info: {self:?}, width: {min_width:?} ~ {max_width:?}, height: {min_height:?} ~ {max_height:?}, max_content_width: {max_content_width:?}, max_content_height: {max_content_height:?}, measured_width: 0, measured_height: 0" ,
131+ ) ;
132+ return Size :: new ( Len :: zero ( ) , Len :: zero ( ) ) ;
133+ }
128134 let text_width = self . font_size * text_len as f32 ;
129135 let max_w = max_width. min ( max_content_width) ;
130136 let max_h = max_height. min ( max_content_height) ;
@@ -188,6 +194,11 @@ fn convert_font_size_to_px(font_size: float_pigment_css::typing::Length) -> f32
188194#[ inline( always) ]
189195fn prepare_measure_node ( node : * mut Node , text_info : TextInfo ) {
190196 let node = unsafe { & mut * node } ;
197+ unsafe {
198+ node. set_display ( Display :: Inline ) ;
199+ node. set_node_type ( float_pigment_forest:: NodeType :: Text ) ;
200+ }
201+ node. set_baseline_func ( Some ( Box :: new ( |_, _, _| Len :: from_f32 ( 16. ) ) ) ) ;
191202 node. set_measure_func ( Some ( Box :: new (
192203 move |_,
193204 max_width,
@@ -208,11 +219,6 @@ fn prepare_measure_node(node: *mut Node, text_info: TextInfo) {
208219 )
209220 } ,
210221 ) ) ) ;
211- unsafe {
212- node. set_display ( Display :: Inline ) ;
213- node. set_baseline_func ( Some ( Box :: new ( |_, _, _| Len :: from_f32 ( 16. ) ) ) ) ;
214- node. set_node_type ( float_pigment_forest:: NodeType :: Text ) ;
215- }
216222}
217223
218224impl TestCtx {
@@ -385,7 +391,6 @@ impl TestCtx {
385391 self . set_expect_layout_pos ( node, e. attributes ( ) ) ;
386392
387393 if is_measure_text_slot ( e. tag ( ) ) {
388- let node = Node :: new_ptr ( ) ;
389394 let text_len = e
390395 . attributes ( )
391396 . get ( "len" )
0 commit comments