@@ -522,30 +522,35 @@ extern "C" {
522522
523523const char * lh_font_description_family (const lh_font_description_t * fd)
524524{
525+ if (!fd) return " " ;
525526 const auto * d = reinterpret_cast <const litehtml::font_description*>(fd);
526527 return d->family .c_str ();
527528}
528529
529530float lh_font_description_size (const lh_font_description_t * fd)
530531{
532+ if (!fd) return 0 .0f ;
531533 const auto * d = reinterpret_cast <const litehtml::font_description*>(fd);
532534 return d->size ;
533535}
534536
535537int lh_font_description_style (const lh_font_description_t * fd)
536538{
539+ if (!fd) return 0 ;
537540 const auto * d = reinterpret_cast <const litehtml::font_description*>(fd);
538541 return static_cast <int >(d->style );
539542}
540543
541544int lh_font_description_weight (const lh_font_description_t * fd)
542545{
546+ if (!fd) return 0 ;
543547 const auto * d = reinterpret_cast <const litehtml::font_description*>(fd);
544548 return d->weight ;
545549}
546550
547551int lh_font_description_decoration_line (const lh_font_description_t * fd)
548552{
553+ if (!fd) return 0 ;
549554 const auto * d = reinterpret_cast <const litehtml::font_description*>(fd);
550555 return d->decoration_line ;
551556}
@@ -556,42 +561,49 @@ int lh_font_description_decoration_line(const lh_font_description_t* fd)
556561
557562const char * lh_list_marker_image (const lh_list_marker_t * m)
558563{
564+ if (!m) return " " ;
559565 const auto * mk = reinterpret_cast <const litehtml::list_marker*>(m);
560566 return mk->image .c_str ();
561567}
562568
563569const char * lh_list_marker_baseurl (const lh_list_marker_t * m)
564570{
571+ if (!m) return " " ;
565572 const auto * mk = reinterpret_cast <const litehtml::list_marker*>(m);
566573 return mk->baseurl ;
567574}
568575
569576int lh_list_marker_type (const lh_list_marker_t * m)
570577{
578+ if (!m) return 0 ;
571579 const auto * mk = reinterpret_cast <const litehtml::list_marker*>(m);
572580 return static_cast <int >(mk->marker_type );
573581}
574582
575583lh_web_color_t lh_list_marker_color (const lh_list_marker_t * m)
576584{
585+ if (!m) return {};
577586 const auto * mk = reinterpret_cast <const litehtml::list_marker*>(m);
578587 return to_c (mk->color );
579588}
580589
581590lh_position_t lh_list_marker_pos (const lh_list_marker_t * m)
582591{
592+ if (!m) return {};
583593 const auto * mk = reinterpret_cast <const litehtml::list_marker*>(m);
584594 return to_c (mk->pos );
585595}
586596
587597int lh_list_marker_index (const lh_list_marker_t * m)
588598{
599+ if (!m) return 0 ;
589600 const auto * mk = reinterpret_cast <const litehtml::list_marker*>(m);
590601 return mk->index ;
591602}
592603
593604uintptr_t lh_list_marker_font (const lh_list_marker_t * m)
594605{
606+ if (!m) return 0 ;
595607 const auto * mk = reinterpret_cast <const litehtml::list_marker*>(m);
596608 return mk->font ;
597609}
@@ -602,42 +614,49 @@ uintptr_t lh_list_marker_font(const lh_list_marker_t* m)
602614
603615lh_position_t lh_background_layer_border_box (const lh_background_layer_t * layer)
604616{
617+ if (!layer) return {};
605618 const auto * bl = reinterpret_cast <const litehtml::background_layer*>(layer);
606619 return to_c (bl->border_box );
607620}
608621
609622lh_border_radiuses_t lh_background_layer_border_radius (const lh_background_layer_t * layer)
610623{
624+ if (!layer) return {};
611625 const auto * bl = reinterpret_cast <const litehtml::background_layer*>(layer);
612626 return to_c (bl->border_radius );
613627}
614628
615629lh_position_t lh_background_layer_clip_box (const lh_background_layer_t * layer)
616630{
631+ if (!layer) return {};
617632 const auto * bl = reinterpret_cast <const litehtml::background_layer*>(layer);
618633 return to_c (bl->clip_box );
619634}
620635
621636lh_position_t lh_background_layer_origin_box (const lh_background_layer_t * layer)
622637{
638+ if (!layer) return {};
623639 const auto * bl = reinterpret_cast <const litehtml::background_layer*>(layer);
624640 return to_c (bl->origin_box );
625641}
626642
627643int lh_background_layer_attachment (const lh_background_layer_t * layer)
628644{
645+ if (!layer) return 0 ;
629646 const auto * bl = reinterpret_cast <const litehtml::background_layer*>(layer);
630647 return static_cast <int >(bl->attachment );
631648}
632649
633650int lh_background_layer_repeat (const lh_background_layer_t * layer)
634651{
652+ if (!layer) return 0 ;
635653 const auto * bl = reinterpret_cast <const litehtml::background_layer*>(layer);
636654 return static_cast <int >(bl->repeat );
637655}
638656
639657int lh_background_layer_is_root (const lh_background_layer_t * layer)
640658{
659+ if (!layer) return 0 ;
641660 const auto * bl = reinterpret_cast <const litehtml::background_layer*>(layer);
642661 return bl->is_root ? 1 : 0 ;
643662}
@@ -648,20 +667,23 @@ int lh_background_layer_is_root(const lh_background_layer_t* layer)
648667
649668lh_point_t lh_linear_gradient_start (const lh_linear_gradient_t * g)
650669{
670+ if (!g) return {};
651671 const auto * lg = reinterpret_cast <
652672 const litehtml::background_layer::linear_gradient*>(g);
653673 return to_c (lg->start );
654674}
655675
656676lh_point_t lh_linear_gradient_end (const lh_linear_gradient_t * g)
657677{
678+ if (!g) return {};
658679 const auto * lg = reinterpret_cast <
659680 const litehtml::background_layer::linear_gradient*>(g);
660681 return to_c (lg->end );
661682}
662683
663684int lh_linear_gradient_color_points_count (const lh_linear_gradient_t * g)
664685{
686+ if (!g) return 0 ;
665687 const auto * lg = reinterpret_cast <
666688 const litehtml::background_layer::linear_gradient*>(g);
667689 return static_cast <int >(lg->color_points .size ());
@@ -670,6 +692,7 @@ int lh_linear_gradient_color_points_count(const lh_linear_gradient_t* g)
670692float lh_linear_gradient_color_point_offset (const lh_linear_gradient_t * g,
671693 int idx)
672694{
695+ if (!g) return 0 .0f ;
673696 const auto * lg = reinterpret_cast <
674697 const litehtml::background_layer::linear_gradient*>(g);
675698 if (idx < 0 || idx >= static_cast <int >(lg->color_points .size ()))
@@ -680,6 +703,7 @@ float lh_linear_gradient_color_point_offset(const lh_linear_gradient_t* g,
680703lh_web_color_t lh_linear_gradient_color_point_color (
681704 const lh_linear_gradient_t * g, int idx)
682705{
706+ if (!g) return {};
683707 const auto * lg = reinterpret_cast <
684708 const litehtml::background_layer::linear_gradient*>(g);
685709 if (idx < 0 || idx >= static_cast <int >(lg->color_points .size ()))
@@ -696,20 +720,23 @@ lh_web_color_t lh_linear_gradient_color_point_color(
696720
697721lh_point_t lh_radial_gradient_position (const lh_radial_gradient_t * g)
698722{
723+ if (!g) return {};
699724 const auto * rg = reinterpret_cast <
700725 const litehtml::background_layer::radial_gradient*>(g);
701726 return to_c (rg->position );
702727}
703728
704729lh_point_t lh_radial_gradient_radius (const lh_radial_gradient_t * g)
705730{
731+ if (!g) return {};
706732 const auto * rg = reinterpret_cast <
707733 const litehtml::background_layer::radial_gradient*>(g);
708734 return to_c (rg->radius );
709735}
710736
711737int lh_radial_gradient_color_points_count (const lh_radial_gradient_t * g)
712738{
739+ if (!g) return 0 ;
713740 const auto * rg = reinterpret_cast <
714741 const litehtml::background_layer::radial_gradient*>(g);
715742 return static_cast <int >(rg->color_points .size ());
@@ -718,6 +745,7 @@ int lh_radial_gradient_color_points_count(const lh_radial_gradient_t* g)
718745float lh_radial_gradient_color_point_offset (const lh_radial_gradient_t * g,
719746 int idx)
720747{
748+ if (!g) return 0 .0f ;
721749 const auto * rg = reinterpret_cast <
722750 const litehtml::background_layer::radial_gradient*>(g);
723751 if (idx < 0 || idx >= static_cast <int >(rg->color_points .size ()))
@@ -728,6 +756,7 @@ float lh_radial_gradient_color_point_offset(const lh_radial_gradient_t* g,
728756lh_web_color_t lh_radial_gradient_color_point_color (
729757 const lh_radial_gradient_t * g, int idx)
730758{
759+ if (!g) return {};
731760 const auto * rg = reinterpret_cast <
732761 const litehtml::background_layer::radial_gradient*>(g);
733762 if (idx < 0 || idx >= static_cast <int >(rg->color_points .size ()))
@@ -744,20 +773,23 @@ lh_web_color_t lh_radial_gradient_color_point_color(
744773
745774lh_point_t lh_conic_gradient_position (const lh_conic_gradient_t * g)
746775{
776+ if (!g) return {};
747777 const auto * cg = reinterpret_cast <
748778 const litehtml::background_layer::conic_gradient*>(g);
749779 return to_c (cg->position );
750780}
751781
752782float lh_conic_gradient_angle (const lh_conic_gradient_t * g)
753783{
784+ if (!g) return 0 .0f ;
754785 const auto * cg = reinterpret_cast <
755786 const litehtml::background_layer::conic_gradient*>(g);
756787 return cg->angle ;
757788}
758789
759790int lh_conic_gradient_color_points_count (const lh_conic_gradient_t * g)
760791{
792+ if (!g) return 0 ;
761793 const auto * cg = reinterpret_cast <
762794 const litehtml::background_layer::conic_gradient*>(g);
763795 return static_cast <int >(cg->color_points .size ());
@@ -766,6 +798,7 @@ int lh_conic_gradient_color_points_count(const lh_conic_gradient_t* g)
766798float lh_conic_gradient_color_point_offset (const lh_conic_gradient_t * g,
767799 int idx)
768800{
801+ if (!g) return 0 .0f ;
769802 const auto * cg = reinterpret_cast <
770803 const litehtml::background_layer::conic_gradient*>(g);
771804 if (idx < 0 || idx >= static_cast <int >(cg->color_points .size ()))
@@ -776,6 +809,7 @@ float lh_conic_gradient_color_point_offset(const lh_conic_gradient_t* g,
776809lh_web_color_t lh_conic_gradient_color_point_color (
777810 const lh_conic_gradient_t * g, int idx)
778811{
812+ if (!g) return {};
779813 const auto * cg = reinterpret_cast <
780814 const litehtml::background_layer::conic_gradient*>(g);
781815 if (idx < 0 || idx >= static_cast <int >(cg->color_points .size ()))
0 commit comments