Gitweb links:
...log
http://git.netsurf-browser.org/libcss.git/shortlog/022a04d022f446b57818df...
...commit
http://git.netsurf-browser.org/libcss.git/commit/022a04d022f446b57818dfa7...
...tree
http://git.netsurf-browser.org/libcss.git/tree/022a04d022f446b57818dfa7d5...
The branch, master has been updated
via 022a04d022f446b57818dfa7d5b49928f9d63bf4 (commit)
via 609e1623335d5d5147439c5ba600152e963fc951 (commit)
from 64f864c7e3ce9dcbd5964c5084075f07af169b0d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff
http://git.netsurf-browser.org/libcss.git/commit/?id=022a04d022f446b57818...
commit 022a04d022f446b57818dfa7d5b49928f9d63bf4
Author: Michael Drake <tlsa(a)netsurf-browser.org>
Commit: Michael Drake <mdrake.unique(a)gmail.com>
select: generator: Generate _bits variants
This avoids having overrides to provide trivially
generated variants.
diff --git a/src/select/autogenerated_propget.h b/src/select/autogenerated_propget.h
index cf82c86..6c958aa 100644
--- a/src/select/autogenerated_propget.h
+++ b/src/select/autogenerated_propget.h
@@ -9,6 +9,15 @@
#define ALIGN_CONTENT_INDEX 10
#define ALIGN_CONTENT_SHIFT 20
#define ALIGN_CONTENT_MASK 0x700000
+static inline uint8_t get_align_content_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[ALIGN_CONTENT_INDEX];
+ bits &= ALIGN_CONTENT_MASK;
+ bits >>= ALIGN_CONTENT_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_align_content(const css_computed_style *style)
{
uint32_t bits = style->i.bits[ALIGN_CONTENT_INDEX];
@@ -26,6 +35,15 @@ static inline uint8_t get_align_content(const css_computed_style
*style)
#define ALIGN_ITEMS_INDEX 10
#define ALIGN_ITEMS_SHIFT 23
#define ALIGN_ITEMS_MASK 0x3800000
+static inline uint8_t get_align_items_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[ALIGN_ITEMS_INDEX];
+ bits &= ALIGN_ITEMS_MASK;
+ bits >>= ALIGN_ITEMS_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_align_items(const css_computed_style *style)
{
uint32_t bits = style->i.bits[ALIGN_ITEMS_INDEX];
@@ -43,6 +61,15 @@ static inline uint8_t get_align_items(const css_computed_style *style)
#define ALIGN_SELF_INDEX 10
#define ALIGN_SELF_SHIFT 26
#define ALIGN_SELF_MASK 0x1c000000
+static inline uint8_t get_align_self_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[ALIGN_SELF_INDEX];
+ bits &= ALIGN_SELF_MASK;
+ bits >>= ALIGN_SELF_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_align_self(const css_computed_style *style)
{
uint32_t bits = style->i.bits[ALIGN_SELF_INDEX];
@@ -60,6 +87,16 @@ static inline uint8_t get_align_self(const css_computed_style *style)
#define BACKGROUND_ATTACHMENT_INDEX 14
#define BACKGROUND_ATTACHMENT_SHIFT 28
#define BACKGROUND_ATTACHMENT_MASK 0x30000000
+static inline uint8_t get_background_attachment_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BACKGROUND_ATTACHMENT_INDEX];
+ bits &= BACKGROUND_ATTACHMENT_MASK;
+ bits >>= BACKGROUND_ATTACHMENT_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_background_attachment(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BACKGROUND_ATTACHMENT_INDEX];
@@ -77,6 +114,15 @@ static inline uint8_t get_background_attachment(const
css_computed_style *style)
#define BACKGROUND_COLOR_INDEX 14
#define BACKGROUND_COLOR_SHIFT 30
#define BACKGROUND_COLOR_MASK 0xc0000000
+static inline uint8_t get_background_color_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BACKGROUND_COLOR_INDEX];
+ bits &= BACKGROUND_COLOR_MASK;
+ bits >>= BACKGROUND_COLOR_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_background_color(const css_computed_style *style,
css_color *color)
{
@@ -96,6 +142,15 @@ static inline uint8_t get_background_color(const css_computed_style
*style,
#define BACKGROUND_IMAGE_INDEX 14
#define BACKGROUND_IMAGE_SHIFT 18
#define BACKGROUND_IMAGE_MASK 0x40000
+static inline uint8_t get_background_image_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BACKGROUND_IMAGE_INDEX];
+ bits &= BACKGROUND_IMAGE_MASK;
+ bits >>= BACKGROUND_IMAGE_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_background_image(const css_computed_style *style,
lwc_string **string)
{
@@ -115,6 +170,16 @@ static inline uint8_t get_background_image(const css_computed_style
*style,
#define BACKGROUND_POSITION_INDEX 12
#define BACKGROUND_POSITION_SHIFT 10
#define BACKGROUND_POSITION_MASK 0x1ffc00
+static inline uint8_t get_background_position_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BACKGROUND_POSITION_INDEX];
+ bits &= BACKGROUND_POSITION_MASK;
+ bits >>= BACKGROUND_POSITION_SHIFT;
+
+ /* 11bits: aaaaabbbbbt : unit_a | unit_b | type */
+ return (bits & 0x1);
+}
static inline uint8_t get_background_position(const css_computed_style *style,
css_fixed *length_a, css_unit *unit_a, css_fixed *length_b,
css_unit *unit_b)
@@ -140,6 +205,16 @@ static inline uint8_t get_background_position(const
css_computed_style *style,
#define BACKGROUND_REPEAT_INDEX 10
#define BACKGROUND_REPEAT_SHIFT 29
#define BACKGROUND_REPEAT_MASK 0xe0000000
+static inline uint8_t get_background_repeat_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BACKGROUND_REPEAT_INDEX];
+ bits &= BACKGROUND_REPEAT_MASK;
+ bits >>= BACKGROUND_REPEAT_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_background_repeat(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BACKGROUND_REPEAT_INDEX];
@@ -157,6 +232,16 @@ static inline uint8_t get_background_repeat(const css_computed_style
*style)
#define BORDER_BOTTOM_COLOR_INDEX 11
#define BORDER_BOTTOM_COLOR_SHIFT 0
#define BORDER_BOTTOM_COLOR_MASK 0x3
+static inline uint8_t get_border_bottom_color_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BORDER_BOTTOM_COLOR_INDEX];
+ bits &= BORDER_BOTTOM_COLOR_MASK;
+ bits >>= BORDER_BOTTOM_COLOR_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_border_bottom_color(const css_computed_style *style,
css_color *color)
{
@@ -176,6 +261,16 @@ static inline uint8_t get_border_bottom_color(const
css_computed_style *style,
#define BORDER_BOTTOM_STYLE_INDEX 13
#define BORDER_BOTTOM_STYLE_SHIFT 28
#define BORDER_BOTTOM_STYLE_MASK 0xf0000000
+static inline uint8_t get_border_bottom_style_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BORDER_BOTTOM_STYLE_INDEX];
+ bits &= BORDER_BOTTOM_STYLE_MASK;
+ bits >>= BORDER_BOTTOM_STYLE_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_border_bottom_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BORDER_BOTTOM_STYLE_INDEX];
@@ -193,6 +288,16 @@ static inline uint8_t get_border_bottom_style(const
css_computed_style *style)
#define BORDER_BOTTOM_WIDTH_INDEX 0
#define BORDER_BOTTOM_WIDTH_SHIFT 0
#define BORDER_BOTTOM_WIDTH_MASK 0xff
+static inline uint8_t get_border_bottom_width_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BORDER_BOTTOM_WIDTH_INDEX];
+ bits &= BORDER_BOTTOM_WIDTH_MASK;
+ bits >>= BORDER_BOTTOM_WIDTH_SHIFT;
+
+ /* 8bits: uuuuuttt : unit | type */
+ return (bits & 0x7);
+}
static inline uint8_t get_border_bottom_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -215,6 +320,15 @@ static inline uint8_t get_border_bottom_width(const
css_computed_style *style,
#define BORDER_COLLAPSE_INDEX 11
#define BORDER_COLLAPSE_SHIFT 2
#define BORDER_COLLAPSE_MASK 0xc
+static inline uint8_t get_border_collapse_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BORDER_COLLAPSE_INDEX];
+ bits &= BORDER_COLLAPSE_MASK;
+ bits >>= BORDER_COLLAPSE_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_border_collapse(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BORDER_COLLAPSE_INDEX];
@@ -232,6 +346,16 @@ static inline uint8_t get_border_collapse(const css_computed_style
*style)
#define BORDER_LEFT_COLOR_INDEX 11
#define BORDER_LEFT_COLOR_SHIFT 4
#define BORDER_LEFT_COLOR_MASK 0x30
+static inline uint8_t get_border_left_color_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BORDER_LEFT_COLOR_INDEX];
+ bits &= BORDER_LEFT_COLOR_MASK;
+ bits >>= BORDER_LEFT_COLOR_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_border_left_color(const css_computed_style *style,
css_color *color)
{
@@ -251,6 +375,16 @@ static inline uint8_t get_border_left_color(const css_computed_style
*style,
#define BORDER_LEFT_STYLE_INDEX 9
#define BORDER_LEFT_STYLE_SHIFT 3
#define BORDER_LEFT_STYLE_MASK 0x78
+static inline uint8_t get_border_left_style_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BORDER_LEFT_STYLE_INDEX];
+ bits &= BORDER_LEFT_STYLE_MASK;
+ bits >>= BORDER_LEFT_STYLE_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_border_left_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BORDER_LEFT_STYLE_INDEX];
@@ -268,6 +402,16 @@ static inline uint8_t get_border_left_style(const css_computed_style
*style)
#define BORDER_LEFT_WIDTH_INDEX 0
#define BORDER_LEFT_WIDTH_SHIFT 8
#define BORDER_LEFT_WIDTH_MASK 0xff00
+static inline uint8_t get_border_left_width_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BORDER_LEFT_WIDTH_INDEX];
+ bits &= BORDER_LEFT_WIDTH_MASK;
+ bits >>= BORDER_LEFT_WIDTH_SHIFT;
+
+ /* 8bits: uuuuuttt : unit | type */
+ return (bits & 0x7);
+}
static inline uint8_t get_border_left_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -290,6 +434,16 @@ static inline uint8_t get_border_left_width(const css_computed_style
*style,
#define BORDER_RIGHT_COLOR_INDEX 11
#define BORDER_RIGHT_COLOR_SHIFT 6
#define BORDER_RIGHT_COLOR_MASK 0xc0
+static inline uint8_t get_border_right_color_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BORDER_RIGHT_COLOR_INDEX];
+ bits &= BORDER_RIGHT_COLOR_MASK;
+ bits >>= BORDER_RIGHT_COLOR_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_border_right_color(const css_computed_style *style,
css_color *color)
{
@@ -309,6 +463,16 @@ static inline uint8_t get_border_right_color(const css_computed_style
*style,
#define BORDER_RIGHT_STYLE_INDEX 9
#define BORDER_RIGHT_STYLE_SHIFT 7
#define BORDER_RIGHT_STYLE_MASK 0x780
+static inline uint8_t get_border_right_style_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BORDER_RIGHT_STYLE_INDEX];
+ bits &= BORDER_RIGHT_STYLE_MASK;
+ bits >>= BORDER_RIGHT_STYLE_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_border_right_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BORDER_RIGHT_STYLE_INDEX];
@@ -326,6 +490,16 @@ static inline uint8_t get_border_right_style(const css_computed_style
*style)
#define BORDER_RIGHT_WIDTH_INDEX 0
#define BORDER_RIGHT_WIDTH_SHIFT 16
#define BORDER_RIGHT_WIDTH_MASK 0xff0000
+static inline uint8_t get_border_right_width_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BORDER_RIGHT_WIDTH_INDEX];
+ bits &= BORDER_RIGHT_WIDTH_MASK;
+ bits >>= BORDER_RIGHT_WIDTH_SHIFT;
+
+ /* 8bits: uuuuuttt : unit | type */
+ return (bits & 0x7);
+}
static inline uint8_t get_border_right_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -348,6 +522,15 @@ static inline uint8_t get_border_right_width(const css_computed_style
*style,
#define BORDER_SPACING_INDEX 12
#define BORDER_SPACING_SHIFT 21
#define BORDER_SPACING_MASK 0xffe00000
+static inline uint8_t get_border_spacing_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BORDER_SPACING_INDEX];
+ bits &= BORDER_SPACING_MASK;
+ bits >>= BORDER_SPACING_SHIFT;
+
+ /* 11bits: aaaaabbbbbt : unit_a | unit_b | type */
+ return (bits & 0x1);
+}
static inline uint8_t get_border_spacing(const css_computed_style *style,
css_fixed *length_a, css_unit *unit_a, css_fixed *length_b,
css_unit *unit_b)
@@ -373,6 +556,15 @@ static inline uint8_t get_border_spacing(const css_computed_style
*style,
#define BORDER_TOP_COLOR_INDEX 11
#define BORDER_TOP_COLOR_SHIFT 8
#define BORDER_TOP_COLOR_MASK 0x300
+static inline uint8_t get_border_top_color_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BORDER_TOP_COLOR_INDEX];
+ bits &= BORDER_TOP_COLOR_MASK;
+ bits >>= BORDER_TOP_COLOR_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_border_top_color(const css_computed_style *style,
css_color *color)
{
@@ -392,6 +584,15 @@ static inline uint8_t get_border_top_color(const css_computed_style
*style,
#define BORDER_TOP_STYLE_INDEX 9
#define BORDER_TOP_STYLE_SHIFT 11
#define BORDER_TOP_STYLE_MASK 0x7800
+static inline uint8_t get_border_top_style_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BORDER_TOP_STYLE_INDEX];
+ bits &= BORDER_TOP_STYLE_MASK;
+ bits >>= BORDER_TOP_STYLE_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_border_top_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BORDER_TOP_STYLE_INDEX];
@@ -409,6 +610,15 @@ static inline uint8_t get_border_top_style(const css_computed_style
*style)
#define BORDER_TOP_WIDTH_INDEX 0
#define BORDER_TOP_WIDTH_SHIFT 24
#define BORDER_TOP_WIDTH_MASK 0xff000000
+static inline uint8_t get_border_top_width_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BORDER_TOP_WIDTH_INDEX];
+ bits &= BORDER_TOP_WIDTH_MASK;
+ bits >>= BORDER_TOP_WIDTH_SHIFT;
+
+ /* 8bits: uuuuuttt : unit | type */
+ return (bits & 0x7);
+}
static inline uint8_t get_border_top_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -431,31 +641,29 @@ static inline uint8_t get_border_top_width(const css_computed_style
*style,
#define BOTTOM_INDEX 3
#define BOTTOM_SHIFT 11
#define BOTTOM_MASK 0x3f800
-static inline uint8_t get_bottom(
- const css_computed_style *style,
- css_fixed *length, css_unit *unit)
+static inline uint8_t get_bottom_bits(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BOTTOM_INDEX];
bits &= BOTTOM_MASK;
bits >>= BOTTOM_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- if ((bits & 0x3) == CSS_BOTTOM_SET) {
- *length = style->i.bottom;
- *unit = bits >> 2;
- }
-
+
+ /* 7bits: uuuuutt : unit | type */
return (bits & 0x3);
}
-static inline uint8_t get_bottom_bits(
- const css_computed_style *style)
+static inline uint8_t get_bottom(const css_computed_style *style, css_fixed
+ *length, css_unit *unit)
{
uint32_t bits = style->i.bits[BOTTOM_INDEX];
bits &= BOTTOM_MASK;
bits >>= BOTTOM_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- return bits;
+
+ /* 7bits: uuuuutt : unit | type */
+ if ((bits & 0x3) == CSS_BOTTOM_SET) {
+ *length = style->i.bottom;
+ *unit = bits >> 2;
+ }
+
+ return (bits & 0x3);
}
#undef BOTTOM_INDEX
#undef BOTTOM_SHIFT
@@ -464,6 +672,15 @@ static inline uint8_t get_bottom_bits(
#define BOX_SIZING_INDEX 11
#define BOX_SIZING_SHIFT 10
#define BOX_SIZING_MASK 0xc00
+static inline uint8_t get_box_sizing_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BOX_SIZING_INDEX];
+ bits &= BOX_SIZING_MASK;
+ bits >>= BOX_SIZING_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_box_sizing(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BOX_SIZING_INDEX];
@@ -481,6 +698,15 @@ static inline uint8_t get_box_sizing(const css_computed_style
*style)
#define BREAK_AFTER_INDEX 9
#define BREAK_AFTER_SHIFT 15
#define BREAK_AFTER_MASK 0x78000
+static inline uint8_t get_break_after_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BREAK_AFTER_INDEX];
+ bits &= BREAK_AFTER_MASK;
+ bits >>= BREAK_AFTER_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_break_after(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BREAK_AFTER_INDEX];
@@ -498,6 +724,15 @@ static inline uint8_t get_break_after(const css_computed_style
*style)
#define BREAK_BEFORE_INDEX 9
#define BREAK_BEFORE_SHIFT 19
#define BREAK_BEFORE_MASK 0x780000
+static inline uint8_t get_break_before_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BREAK_BEFORE_INDEX];
+ bits &= BREAK_BEFORE_MASK;
+ bits >>= BREAK_BEFORE_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_break_before(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BREAK_BEFORE_INDEX];
@@ -515,6 +750,15 @@ static inline uint8_t get_break_before(const css_computed_style
*style)
#define BREAK_INSIDE_INDEX 9
#define BREAK_INSIDE_SHIFT 23
#define BREAK_INSIDE_MASK 0x7800000
+static inline uint8_t get_break_inside_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BREAK_INSIDE_INDEX];
+ bits &= BREAK_INSIDE_MASK;
+ bits >>= BREAK_INSIDE_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_break_inside(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BREAK_INSIDE_INDEX];
@@ -532,6 +776,15 @@ static inline uint8_t get_break_inside(const css_computed_style
*style)
#define CAPTION_SIDE_INDEX 11
#define CAPTION_SIDE_SHIFT 12
#define CAPTION_SIDE_MASK 0x3000
+static inline uint8_t get_caption_side_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[CAPTION_SIDE_INDEX];
+ bits &= CAPTION_SIDE_MASK;
+ bits >>= CAPTION_SIDE_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_caption_side(const css_computed_style *style)
{
uint32_t bits = style->i.bits[CAPTION_SIDE_INDEX];
@@ -549,6 +802,15 @@ static inline uint8_t get_caption_side(const css_computed_style
*style)
#define CLEAR_INDEX 13
#define CLEAR_SHIFT 1
#define CLEAR_MASK 0xe
+static inline uint8_t get_clear_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[CLEAR_INDEX];
+ bits &= CLEAR_MASK;
+ bits >>= CLEAR_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_clear(const css_computed_style *style)
{
uint32_t bits = style->i.bits[CLEAR_INDEX];
@@ -566,6 +828,16 @@ static inline uint8_t get_clear(const css_computed_style *style)
#define CLIP_INDEX 2
#define CLIP_SHIFT 6
#define CLIP_MASK 0xffffffc0
+static inline uint8_t get_clip_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[CLIP_INDEX];
+ bits &= CLIP_MASK;
+ bits >>= CLIP_SHIFT;
+
+ /* 26bits: aaaaabbbbbcccccdddddtttttt : unit_a | unit_b | unit_c |
+ unit_d | type */
+ return (bits & 0x3f);
+}
static inline uint8_t get_clip(
const css_computed_style *style,
css_computed_clip_rect *rect)
@@ -608,15 +880,24 @@ static inline uint8_t get_clip(
#define COLOR_INDEX 14
#define COLOR_SHIFT 19
#define COLOR_MASK 0x80000
-static inline uint8_t get_color(const css_computed_style *style, css_color
- *color)
+static inline uint8_t get_color_bits(const css_computed_style *style)
{
uint32_t bits = style->i.bits[COLOR_INDEX];
bits &= COLOR_MASK;
bits >>= COLOR_SHIFT;
/* 1bit: t : type */
- *color = style->i.color;
+ return (bits & 0x1);
+}
+static inline uint8_t get_color(const css_computed_style *style, css_color
+ *color)
+{
+ uint32_t bits = style->i.bits[COLOR_INDEX];
+ bits &= COLOR_MASK;
+ bits >>= COLOR_SHIFT;
+
+ /* 1bit: t : type */
+ *color = style->i.color;
return (bits & 0x1);
}
@@ -627,6 +908,15 @@ static inline uint8_t get_color(const css_computed_style *style,
css_color
#define COLUMN_COUNT_INDEX 11
#define COLUMN_COUNT_SHIFT 14
#define COLUMN_COUNT_MASK 0xc000
+static inline uint8_t get_column_count_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[COLUMN_COUNT_INDEX];
+ bits &= COLUMN_COUNT_MASK;
+ bits >>= COLUMN_COUNT_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_column_count(const css_computed_style *style, int32_t
*integer)
{
@@ -646,6 +936,15 @@ static inline uint8_t get_column_count(const css_computed_style
*style, int32_t
#define COLUMN_FILL_INDEX 11
#define COLUMN_FILL_SHIFT 16
#define COLUMN_FILL_MASK 0x30000
+static inline uint8_t get_column_fill_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[COLUMN_FILL_INDEX];
+ bits &= COLUMN_FILL_MASK;
+ bits >>= COLUMN_FILL_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_column_fill(const css_computed_style *style)
{
uint32_t bits = style->i.bits[COLUMN_FILL_INDEX];
@@ -663,6 +962,15 @@ static inline uint8_t get_column_fill(const css_computed_style
*style)
#define COLUMN_GAP_INDEX 3
#define COLUMN_GAP_SHIFT 18
#define COLUMN_GAP_MASK 0x1fc0000
+static inline uint8_t get_column_gap_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[COLUMN_GAP_INDEX];
+ bits &= COLUMN_GAP_MASK;
+ bits >>= COLUMN_GAP_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_column_gap(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -685,6 +993,16 @@ static inline uint8_t get_column_gap(const css_computed_style *style,
css_fixed
#define COLUMN_RULE_COLOR_INDEX 11
#define COLUMN_RULE_COLOR_SHIFT 18
#define COLUMN_RULE_COLOR_MASK 0xc0000
+static inline uint8_t get_column_rule_color_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[COLUMN_RULE_COLOR_INDEX];
+ bits &= COLUMN_RULE_COLOR_MASK;
+ bits >>= COLUMN_RULE_COLOR_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_column_rule_color(const css_computed_style *style,
css_color *color)
{
@@ -704,6 +1022,16 @@ static inline uint8_t get_column_rule_color(const css_computed_style
*style,
#define COLUMN_RULE_STYLE_INDEX 7
#define COLUMN_RULE_STYLE_SHIFT 0
#define COLUMN_RULE_STYLE_MASK 0xf
+static inline uint8_t get_column_rule_style_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[COLUMN_RULE_STYLE_INDEX];
+ bits &= COLUMN_RULE_STYLE_MASK;
+ bits >>= COLUMN_RULE_STYLE_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_column_rule_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[COLUMN_RULE_STYLE_INDEX];
@@ -721,6 +1049,16 @@ static inline uint8_t get_column_rule_style(const css_computed_style
*style)
#define COLUMN_RULE_WIDTH_INDEX 1
#define COLUMN_RULE_WIDTH_SHIFT 7
#define COLUMN_RULE_WIDTH_MASK 0x7f80
+static inline uint8_t get_column_rule_width_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[COLUMN_RULE_WIDTH_INDEX];
+ bits &= COLUMN_RULE_WIDTH_MASK;
+ bits >>= COLUMN_RULE_WIDTH_SHIFT;
+
+ /* 8bits: uuuuuttt : unit | type */
+ return (bits & 0x7);
+}
static inline uint8_t get_column_rule_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -743,6 +1081,15 @@ static inline uint8_t get_column_rule_width(const css_computed_style
*style,
#define COLUMN_SPAN_INDEX 11
#define COLUMN_SPAN_SHIFT 20
#define COLUMN_SPAN_MASK 0x300000
+static inline uint8_t get_column_span_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[COLUMN_SPAN_INDEX];
+ bits &= COLUMN_SPAN_MASK;
+ bits >>= COLUMN_SPAN_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_column_span(const css_computed_style *style)
{
uint32_t bits = style->i.bits[COLUMN_SPAN_INDEX];
@@ -760,6 +1107,15 @@ static inline uint8_t get_column_span(const css_computed_style
*style)
#define COLUMN_WIDTH_INDEX 3
#define COLUMN_WIDTH_SHIFT 25
#define COLUMN_WIDTH_MASK 0xfe000000
+static inline uint8_t get_column_width_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[COLUMN_WIDTH_INDEX];
+ bits &= COLUMN_WIDTH_MASK;
+ bits >>= COLUMN_WIDTH_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_column_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -782,6 +1138,15 @@ static inline uint8_t get_column_width(const css_computed_style
*style,
#define CONTENT_INDEX 11
#define CONTENT_SHIFT 22
#define CONTENT_MASK 0xc00000
+static inline uint8_t get_content_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[CONTENT_INDEX];
+ bits &= CONTENT_MASK;
+ bits >>= CONTENT_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_content(const css_computed_style *style, const
css_computed_content_item **content_item)
{
@@ -803,6 +1168,16 @@ static inline uint8_t get_content(const css_computed_style *style,
const
#define COUNTER_INCREMENT_INDEX 14
#define COUNTER_INCREMENT_SHIFT 20
#define COUNTER_INCREMENT_MASK 0x100000
+static inline uint8_t get_counter_increment_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[COUNTER_INCREMENT_INDEX];
+ bits &= COUNTER_INCREMENT_MASK;
+ bits >>= COUNTER_INCREMENT_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_counter_increment(const css_computed_style *style,
const css_computed_counter **counter_arr)
{
@@ -822,6 +1197,15 @@ static inline uint8_t get_counter_increment(const css_computed_style
*style,
#define COUNTER_RESET_INDEX 14
#define COUNTER_RESET_SHIFT 21
#define COUNTER_RESET_MASK 0x200000
+static inline uint8_t get_counter_reset_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[COUNTER_RESET_INDEX];
+ bits &= COUNTER_RESET_MASK;
+ bits >>= COUNTER_RESET_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_counter_reset(const css_computed_style *style, const
css_computed_counter **counter_arr)
{
@@ -841,6 +1225,15 @@ static inline uint8_t get_counter_reset(const css_computed_style
*style, const
#define CURSOR_INDEX 9
#define CURSOR_SHIFT 27
#define CURSOR_MASK 0xf8000000
+static inline uint8_t get_cursor_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[CURSOR_INDEX];
+ bits &= CURSOR_MASK;
+ bits >>= CURSOR_SHIFT;
+
+ /* 5bits: ttttt : type */
+ return (bits & 0x1f);
+}
static inline uint8_t get_cursor(const css_computed_style *style, lwc_string
***string_arr)
{
@@ -860,6 +1253,15 @@ static inline uint8_t get_cursor(const css_computed_style *style,
lwc_string
#define DIRECTION_INDEX 11
#define DIRECTION_SHIFT 24
#define DIRECTION_MASK 0x3000000
+static inline uint8_t get_direction_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[DIRECTION_INDEX];
+ bits &= DIRECTION_MASK;
+ bits >>= DIRECTION_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_direction(const css_computed_style *style)
{
uint32_t bits = style->i.bits[DIRECTION_INDEX];
@@ -877,6 +1279,15 @@ static inline uint8_t get_direction(const css_computed_style
*style)
#define DISPLAY_INDEX 8
#define DISPLAY_SHIFT 3
#define DISPLAY_MASK 0xf8
+static inline uint8_t get_display_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[DISPLAY_INDEX];
+ bits &= DISPLAY_MASK;
+ bits >>= DISPLAY_SHIFT;
+
+ /* 5bits: ttttt : type */
+ return (bits & 0x1f);
+}
static inline uint8_t get_display(const css_computed_style *style)
{
uint32_t bits = style->i.bits[DISPLAY_INDEX];
@@ -894,6 +1305,15 @@ static inline uint8_t get_display(const css_computed_style *style)
#define EMPTY_CELLS_INDEX 11
#define EMPTY_CELLS_SHIFT 26
#define EMPTY_CELLS_MASK 0xc000000
+static inline uint8_t get_empty_cells_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[EMPTY_CELLS_INDEX];
+ bits &= EMPTY_CELLS_MASK;
+ bits >>= EMPTY_CELLS_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_empty_cells(const css_computed_style *style)
{
uint32_t bits = style->i.bits[EMPTY_CELLS_INDEX];
@@ -911,6 +1331,15 @@ static inline uint8_t get_empty_cells(const css_computed_style
*style)
#define FLEX_BASIS_INDEX 7
#define FLEX_BASIS_SHIFT 4
#define FLEX_BASIS_MASK 0x7f0
+static inline uint8_t get_flex_basis_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FLEX_BASIS_INDEX];
+ bits &= FLEX_BASIS_MASK;
+ bits >>= FLEX_BASIS_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_flex_basis(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -933,6 +1362,15 @@ static inline uint8_t get_flex_basis(const css_computed_style
*style, css_fixed
#define FLEX_DIRECTION_INDEX 13
#define FLEX_DIRECTION_SHIFT 4
#define FLEX_DIRECTION_MASK 0x70
+static inline uint8_t get_flex_direction_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FLEX_DIRECTION_INDEX];
+ bits &= FLEX_DIRECTION_MASK;
+ bits >>= FLEX_DIRECTION_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_flex_direction(const css_computed_style *style)
{
uint32_t bits = style->i.bits[FLEX_DIRECTION_INDEX];
@@ -950,6 +1388,15 @@ static inline uint8_t get_flex_direction(const css_computed_style
*style)
#define FLEX_GROW_INDEX 14
#define FLEX_GROW_SHIFT 22
#define FLEX_GROW_MASK 0x400000
+static inline uint8_t get_flex_grow_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FLEX_GROW_INDEX];
+ bits &= FLEX_GROW_MASK;
+ bits >>= FLEX_GROW_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_flex_grow(const css_computed_style *style, css_fixed
*fixed)
{
@@ -971,6 +1418,15 @@ static inline uint8_t get_flex_grow(const css_computed_style *style,
css_fixed
#define FLEX_SHRINK_INDEX 14
#define FLEX_SHRINK_SHIFT 23
#define FLEX_SHRINK_MASK 0x800000
+static inline uint8_t get_flex_shrink_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FLEX_SHRINK_INDEX];
+ bits &= FLEX_SHRINK_MASK;
+ bits >>= FLEX_SHRINK_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_flex_shrink(const css_computed_style *style,
css_fixed *fixed)
{
@@ -992,6 +1448,15 @@ static inline uint8_t get_flex_shrink(const css_computed_style
*style,
#define FLEX_WRAP_INDEX 11
#define FLEX_WRAP_SHIFT 28
#define FLEX_WRAP_MASK 0x30000000
+static inline uint8_t get_flex_wrap_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FLEX_WRAP_INDEX];
+ bits &= FLEX_WRAP_MASK;
+ bits >>= FLEX_WRAP_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_flex_wrap(const css_computed_style *style)
{
uint32_t bits = style->i.bits[FLEX_WRAP_INDEX];
@@ -1009,6 +1474,15 @@ static inline uint8_t get_flex_wrap(const css_computed_style
*style)
#define FLOAT_INDEX 11
#define FLOAT_SHIFT 30
#define FLOAT_MASK 0xc0000000
+static inline uint8_t get_float_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FLOAT_INDEX];
+ bits &= FLOAT_MASK;
+ bits >>= FLOAT_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_float(const css_computed_style *style)
{
uint32_t bits = style->i.bits[FLOAT_INDEX];
@@ -1026,6 +1500,15 @@ static inline uint8_t get_float(const css_computed_style *style)
#define FONT_FAMILY_INDEX 13
#define FONT_FAMILY_SHIFT 7
#define FONT_FAMILY_MASK 0x380
+static inline uint8_t get_font_family_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FONT_FAMILY_INDEX];
+ bits &= FONT_FAMILY_MASK;
+ bits >>= FONT_FAMILY_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_font_family(const css_computed_style *style,
lwc_string ***string_arr)
{
@@ -1045,6 +1528,15 @@ static inline uint8_t get_font_family(const css_computed_style
*style,
#define FONT_SIZE_INDEX 1
#define FONT_SIZE_SHIFT 23
#define FONT_SIZE_MASK 0xff800000
+static inline uint8_t get_font_size_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FONT_SIZE_INDEX];
+ bits &= FONT_SIZE_MASK;
+ bits >>= FONT_SIZE_SHIFT;
+
+ /* 9bits: uuuuutttt : unit | type */
+ return (bits & 0xf);
+}
static inline uint8_t get_font_size(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -1067,6 +1559,15 @@ static inline uint8_t get_font_size(const css_computed_style
*style, css_fixed
#define FONT_STYLE_INDEX 10
#define FONT_STYLE_SHIFT 0
#define FONT_STYLE_MASK 0x3
+static inline uint8_t get_font_style_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FONT_STYLE_INDEX];
+ bits &= FONT_STYLE_MASK;
+ bits >>= FONT_STYLE_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_font_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[FONT_STYLE_INDEX];
@@ -1084,6 +1585,15 @@ static inline uint8_t get_font_style(const css_computed_style
*style)
#define FONT_VARIANT_INDEX 10
#define FONT_VARIANT_SHIFT 2
#define FONT_VARIANT_MASK 0xc
+static inline uint8_t get_font_variant_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FONT_VARIANT_INDEX];
+ bits &= FONT_VARIANT_MASK;
+ bits >>= FONT_VARIANT_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_font_variant(const css_computed_style *style)
{
uint32_t bits = style->i.bits[FONT_VARIANT_INDEX];
@@ -1101,6 +1611,15 @@ static inline uint8_t get_font_variant(const css_computed_style
*style)
#define FONT_WEIGHT_INDEX 6
#define FONT_WEIGHT_SHIFT 0
#define FONT_WEIGHT_MASK 0xf
+static inline uint8_t get_font_weight_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FONT_WEIGHT_INDEX];
+ bits &= FONT_WEIGHT_MASK;
+ bits >>= FONT_WEIGHT_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_font_weight(const css_computed_style *style)
{
uint32_t bits = style->i.bits[FONT_WEIGHT_INDEX];
@@ -1118,6 +1637,15 @@ static inline uint8_t get_font_weight(const css_computed_style
*style)
#define HEIGHT_INDEX 7
#define HEIGHT_SHIFT 11
#define HEIGHT_MASK 0x3f800
+static inline uint8_t get_height_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[HEIGHT_INDEX];
+ bits &= HEIGHT_MASK;
+ bits >>= HEIGHT_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_height(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -1140,6 +1668,15 @@ static inline uint8_t get_height(const css_computed_style *style,
css_fixed
#define JUSTIFY_CONTENT_INDEX 13
#define JUSTIFY_CONTENT_SHIFT 10
#define JUSTIFY_CONTENT_MASK 0x1c00
+static inline uint8_t get_justify_content_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[JUSTIFY_CONTENT_INDEX];
+ bits &= JUSTIFY_CONTENT_MASK;
+ bits >>= JUSTIFY_CONTENT_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_justify_content(const css_computed_style *style)
{
uint32_t bits = style->i.bits[JUSTIFY_CONTENT_INDEX];
@@ -1157,39 +1694,46 @@ static inline uint8_t get_justify_content(const css_computed_style
*style)
#define LEFT_INDEX 7
#define LEFT_SHIFT 18
#define LEFT_MASK 0x1fc0000
-static inline uint8_t get_left(
- const css_computed_style *style,
- css_fixed *length, css_unit *unit)
+static inline uint8_t get_left_bits(const css_computed_style *style)
{
uint32_t bits = style->i.bits[LEFT_INDEX];
bits &= LEFT_MASK;
bits >>= LEFT_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- if ((bits & 0x3) == CSS_LEFT_SET) {
- *length = style->i.left;
- *unit = bits >> 2;
- }
-
+
+ /* 7bits: uuuuutt : unit | type */
return (bits & 0x3);
}
-static inline uint8_t get_left_bits(
- const css_computed_style *style)
+static inline uint8_t get_left(const css_computed_style *style, css_fixed
+ *length, css_unit *unit)
{
uint32_t bits = style->i.bits[LEFT_INDEX];
bits &= LEFT_MASK;
bits >>= LEFT_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- return bits;
-}
-#undef LEFT_INDEX
-#undef LEFT_SHIFT
-#undef LEFT_MASK
-
-#define LETTER_SPACING_INDEX 7
-#define LETTER_SPACING_SHIFT 25
+
+ /* 7bits: uuuuutt : unit | type */
+ if ((bits & 0x3) == CSS_LEFT_SET) {
+ *length = style->i.left;
+ *unit = bits >> 2;
+ }
+
+ return (bits & 0x3);
+}
+#undef LEFT_INDEX
+#undef LEFT_SHIFT
+#undef LEFT_MASK
+
+#define LETTER_SPACING_INDEX 7
+#define LETTER_SPACING_SHIFT 25
#define LETTER_SPACING_MASK 0xfe000000
+static inline uint8_t get_letter_spacing_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[LETTER_SPACING_INDEX];
+ bits &= LETTER_SPACING_MASK;
+ bits >>= LETTER_SPACING_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_letter_spacing(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1212,6 +1756,15 @@ static inline uint8_t get_letter_spacing(const css_computed_style
*style,
#define LINE_HEIGHT_INDEX 6
#define LINE_HEIGHT_SHIFT 4
#define LINE_HEIGHT_MASK 0x7f0
+static inline uint8_t get_line_height_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[LINE_HEIGHT_INDEX];
+ bits &= LINE_HEIGHT_MASK;
+ bits >>= LINE_HEIGHT_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_line_height(
const css_computed_style *style,
css_fixed *length, css_unit *unit)
@@ -1239,6 +1792,15 @@ static inline uint8_t get_line_height(
#define LIST_STYLE_IMAGE_INDEX 14
#define LIST_STYLE_IMAGE_SHIFT 24
#define LIST_STYLE_IMAGE_MASK 0x1000000
+static inline uint8_t get_list_style_image_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[LIST_STYLE_IMAGE_INDEX];
+ bits &= LIST_STYLE_IMAGE_MASK;
+ bits >>= LIST_STYLE_IMAGE_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_list_style_image(const css_computed_style *style,
lwc_string **string)
{
@@ -1258,6 +1820,16 @@ static inline uint8_t get_list_style_image(const css_computed_style
*style,
#define LIST_STYLE_POSITION_INDEX 10
#define LIST_STYLE_POSITION_SHIFT 4
#define LIST_STYLE_POSITION_MASK 0x30
+static inline uint8_t get_list_style_position_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[LIST_STYLE_POSITION_INDEX];
+ bits &= LIST_STYLE_POSITION_MASK;
+ bits >>= LIST_STYLE_POSITION_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_list_style_position(const css_computed_style *style)
{
uint32_t bits = style->i.bits[LIST_STYLE_POSITION_INDEX];
@@ -1275,6 +1847,15 @@ static inline uint8_t get_list_style_position(const
css_computed_style *style)
#define LIST_STYLE_TYPE_INDEX 8
#define LIST_STYLE_TYPE_SHIFT 8
#define LIST_STYLE_TYPE_MASK 0x3f00
+static inline uint8_t get_list_style_type_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[LIST_STYLE_TYPE_INDEX];
+ bits &= LIST_STYLE_TYPE_MASK;
+ bits >>= LIST_STYLE_TYPE_SHIFT;
+
+ /* 6bits: tttttt : type */
+ return (bits & 0x3f);
+}
static inline uint8_t get_list_style_type(const css_computed_style *style)
{
uint32_t bits = style->i.bits[LIST_STYLE_TYPE_INDEX];
@@ -1292,6 +1873,15 @@ static inline uint8_t get_list_style_type(const css_computed_style
*style)
#define MARGIN_BOTTOM_INDEX 6
#define MARGIN_BOTTOM_SHIFT 11
#define MARGIN_BOTTOM_MASK 0x3f800
+static inline uint8_t get_margin_bottom_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[MARGIN_BOTTOM_INDEX];
+ bits &= MARGIN_BOTTOM_MASK;
+ bits >>= MARGIN_BOTTOM_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_margin_bottom(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1314,6 +1904,15 @@ static inline uint8_t get_margin_bottom(const css_computed_style
*style,
#define MARGIN_LEFT_INDEX 6
#define MARGIN_LEFT_SHIFT 18
#define MARGIN_LEFT_MASK 0x1fc0000
+static inline uint8_t get_margin_left_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[MARGIN_LEFT_INDEX];
+ bits &= MARGIN_LEFT_MASK;
+ bits >>= MARGIN_LEFT_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_margin_left(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1336,6 +1935,15 @@ static inline uint8_t get_margin_left(const css_computed_style
*style,
#define MARGIN_RIGHT_INDEX 6
#define MARGIN_RIGHT_SHIFT 25
#define MARGIN_RIGHT_MASK 0xfe000000
+static inline uint8_t get_margin_right_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[MARGIN_RIGHT_INDEX];
+ bits &= MARGIN_RIGHT_MASK;
+ bits >>= MARGIN_RIGHT_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_margin_right(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1358,6 +1966,15 @@ static inline uint8_t get_margin_right(const css_computed_style
*style,
#define MARGIN_TOP_INDEX 5
#define MARGIN_TOP_SHIFT 4
#define MARGIN_TOP_MASK 0x7f0
+static inline uint8_t get_margin_top_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[MARGIN_TOP_INDEX];
+ bits &= MARGIN_TOP_MASK;
+ bits >>= MARGIN_TOP_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_margin_top(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -1380,6 +1997,15 @@ static inline uint8_t get_margin_top(const css_computed_style
*style, css_fixed
#define MAX_HEIGHT_INDEX 5
#define MAX_HEIGHT_SHIFT 11
#define MAX_HEIGHT_MASK 0x3f800
+static inline uint8_t get_max_height_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[MAX_HEIGHT_INDEX];
+ bits &= MAX_HEIGHT_MASK;
+ bits >>= MAX_HEIGHT_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_max_height(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -1402,6 +2028,15 @@ static inline uint8_t get_max_height(const css_computed_style
*style, css_fixed
#define MAX_WIDTH_INDEX 5
#define MAX_WIDTH_SHIFT 18
#define MAX_WIDTH_MASK 0x1fc0000
+static inline uint8_t get_max_width_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[MAX_WIDTH_INDEX];
+ bits &= MAX_WIDTH_MASK;
+ bits >>= MAX_WIDTH_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_max_width(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -1424,6 +2059,15 @@ static inline uint8_t get_max_width(const css_computed_style
*style, css_fixed
#define MIN_HEIGHT_INDEX 5
#define MIN_HEIGHT_SHIFT 25
#define MIN_HEIGHT_MASK 0xfe000000
+static inline uint8_t get_min_height_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[MIN_HEIGHT_INDEX];
+ bits &= MIN_HEIGHT_MASK;
+ bits >>= MIN_HEIGHT_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_min_height(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -1446,6 +2090,15 @@ static inline uint8_t get_min_height(const css_computed_style
*style, css_fixed
#define MIN_WIDTH_INDEX 4
#define MIN_WIDTH_SHIFT 4
#define MIN_WIDTH_MASK 0x7f0
+static inline uint8_t get_min_width_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[MIN_WIDTH_INDEX];
+ bits &= MIN_WIDTH_MASK;
+ bits >>= MIN_WIDTH_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_min_width(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -1468,6 +2121,15 @@ static inline uint8_t get_min_width(const css_computed_style
*style, css_fixed
#define OPACITY_INDEX 14
#define OPACITY_SHIFT 25
#define OPACITY_MASK 0x2000000
+static inline uint8_t get_opacity_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[OPACITY_INDEX];
+ bits &= OPACITY_MASK;
+ bits >>= OPACITY_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_opacity(const css_computed_style *style, css_fixed
*fixed)
{
@@ -1489,6 +2151,15 @@ static inline uint8_t get_opacity(const css_computed_style *style,
css_fixed
#define ORDER_INDEX 14
#define ORDER_SHIFT 26
#define ORDER_MASK 0x4000000
+static inline uint8_t get_order_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[ORDER_INDEX];
+ bits &= ORDER_MASK;
+ bits >>= ORDER_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_order(const css_computed_style *style, int32_t
*integer)
{
@@ -1510,6 +2181,15 @@ static inline uint8_t get_order(const css_computed_style *style,
int32_t
#define ORPHANS_INDEX 14
#define ORPHANS_SHIFT 27
#define ORPHANS_MASK 0x8000000
+static inline uint8_t get_orphans_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[ORPHANS_INDEX];
+ bits &= ORPHANS_MASK;
+ bits >>= ORPHANS_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_orphans(const css_computed_style *style, int32_t
*integer)
{
@@ -1529,6 +2209,15 @@ static inline uint8_t get_orphans(const css_computed_style *style,
int32_t
#define OUTLINE_COLOR_INDEX 10
#define OUTLINE_COLOR_SHIFT 6
#define OUTLINE_COLOR_MASK 0xc0
+static inline uint8_t get_outline_color_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[OUTLINE_COLOR_INDEX];
+ bits &= OUTLINE_COLOR_MASK;
+ bits >>= OUTLINE_COLOR_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_outline_color(const css_computed_style *style,
css_color *color)
{
@@ -1550,6 +2239,15 @@ static inline uint8_t get_outline_color(const css_computed_style
*style,
#define OUTLINE_STYLE_INDEX 5
#define OUTLINE_STYLE_SHIFT 0
#define OUTLINE_STYLE_MASK 0xf
+static inline uint8_t get_outline_style_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[OUTLINE_STYLE_INDEX];
+ bits &= OUTLINE_STYLE_MASK;
+ bits >>= OUTLINE_STYLE_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_outline_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[OUTLINE_STYLE_INDEX];
@@ -1567,6 +2265,15 @@ static inline uint8_t get_outline_style(const css_computed_style
*style)
#define OUTLINE_WIDTH_INDEX 1
#define OUTLINE_WIDTH_SHIFT 15
#define OUTLINE_WIDTH_MASK 0x7f8000
+static inline uint8_t get_outline_width_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[OUTLINE_WIDTH_INDEX];
+ bits &= OUTLINE_WIDTH_MASK;
+ bits >>= OUTLINE_WIDTH_SHIFT;
+
+ /* 8bits: uuuuuttt : unit | type */
+ return (bits & 0x7);
+}
static inline uint8_t get_outline_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1589,6 +2296,15 @@ static inline uint8_t get_outline_width(const css_computed_style
*style,
#define OVERFLOW_X_INDEX 13
#define OVERFLOW_X_SHIFT 13
#define OVERFLOW_X_MASK 0xe000
+static inline uint8_t get_overflow_x_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[OVERFLOW_X_INDEX];
+ bits &= OVERFLOW_X_MASK;
+ bits >>= OVERFLOW_X_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_overflow_x(const css_computed_style *style)
{
uint32_t bits = style->i.bits[OVERFLOW_X_INDEX];
@@ -1606,6 +2322,15 @@ static inline uint8_t get_overflow_x(const css_computed_style
*style)
#define OVERFLOW_Y_INDEX 13
#define OVERFLOW_Y_SHIFT 16
#define OVERFLOW_Y_MASK 0x70000
+static inline uint8_t get_overflow_y_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[OVERFLOW_Y_INDEX];
+ bits &= OVERFLOW_Y_MASK;
+ bits >>= OVERFLOW_Y_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_overflow_y(const css_computed_style *style)
{
uint32_t bits = style->i.bits[OVERFLOW_Y_INDEX];
@@ -1623,6 +2348,15 @@ static inline uint8_t get_overflow_y(const css_computed_style
*style)
#define PADDING_BOTTOM_INDEX 8
#define PADDING_BOTTOM_SHIFT 14
#define PADDING_BOTTOM_MASK 0xfc000
+static inline uint8_t get_padding_bottom_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[PADDING_BOTTOM_INDEX];
+ bits &= PADDING_BOTTOM_MASK;
+ bits >>= PADDING_BOTTOM_SHIFT;
+
+ /* 6bits: uuuuut : unit | type */
+ return (bits & 0x1);
+}
static inline uint8_t get_padding_bottom(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1645,6 +2379,15 @@ static inline uint8_t get_padding_bottom(const css_computed_style
*style,
#define PADDING_LEFT_INDEX 8
#define PADDING_LEFT_SHIFT 20
#define PADDING_LEFT_MASK 0x3f00000
+static inline uint8_t get_padding_left_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[PADDING_LEFT_INDEX];
+ bits &= PADDING_LEFT_MASK;
+ bits >>= PADDING_LEFT_SHIFT;
+
+ /* 6bits: uuuuut : unit | type */
+ return (bits & 0x1);
+}
static inline uint8_t get_padding_left(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1667,6 +2410,15 @@ static inline uint8_t get_padding_left(const css_computed_style
*style,
#define PADDING_RIGHT_INDEX 8
#define PADDING_RIGHT_SHIFT 26
#define PADDING_RIGHT_MASK 0xfc000000
+static inline uint8_t get_padding_right_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[PADDING_RIGHT_INDEX];
+ bits &= PADDING_RIGHT_MASK;
+ bits >>= PADDING_RIGHT_SHIFT;
+
+ /* 6bits: uuuuut : unit | type */
+ return (bits & 0x1);
+}
static inline uint8_t get_padding_right(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1689,6 +2441,15 @@ static inline uint8_t get_padding_right(const css_computed_style
*style,
#define PADDING_TOP_INDEX 3
#define PADDING_TOP_SHIFT 5
#define PADDING_TOP_MASK 0x7e0
+static inline uint8_t get_padding_top_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[PADDING_TOP_INDEX];
+ bits &= PADDING_TOP_MASK;
+ bits >>= PADDING_TOP_SHIFT;
+
+ /* 6bits: uuuuut : unit | type */
+ return (bits & 0x1);
+}
static inline uint8_t get_padding_top(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1711,6 +2472,15 @@ static inline uint8_t get_padding_top(const css_computed_style
*style,
#define PAGE_BREAK_AFTER_INDEX 13
#define PAGE_BREAK_AFTER_SHIFT 19
#define PAGE_BREAK_AFTER_MASK 0x380000
+static inline uint8_t get_page_break_after_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[PAGE_BREAK_AFTER_INDEX];
+ bits &= PAGE_BREAK_AFTER_MASK;
+ bits >>= PAGE_BREAK_AFTER_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_page_break_after(const css_computed_style *style)
{
uint32_t bits = style->i.bits[PAGE_BREAK_AFTER_INDEX];
@@ -1728,6 +2498,16 @@ static inline uint8_t get_page_break_after(const css_computed_style
*style)
#define PAGE_BREAK_BEFORE_INDEX 13
#define PAGE_BREAK_BEFORE_SHIFT 22
#define PAGE_BREAK_BEFORE_MASK 0x1c00000
+static inline uint8_t get_page_break_before_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[PAGE_BREAK_BEFORE_INDEX];
+ bits &= PAGE_BREAK_BEFORE_MASK;
+ bits >>= PAGE_BREAK_BEFORE_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_page_break_before(const css_computed_style *style)
{
uint32_t bits = style->i.bits[PAGE_BREAK_BEFORE_INDEX];
@@ -1745,6 +2525,16 @@ static inline uint8_t get_page_break_before(const
css_computed_style *style)
#define PAGE_BREAK_INSIDE_INDEX 10
#define PAGE_BREAK_INSIDE_SHIFT 8
#define PAGE_BREAK_INSIDE_MASK 0x300
+static inline uint8_t get_page_break_inside_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[PAGE_BREAK_INSIDE_INDEX];
+ bits &= PAGE_BREAK_INSIDE_MASK;
+ bits >>= PAGE_BREAK_INSIDE_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_page_break_inside(const css_computed_style *style)
{
uint32_t bits = style->i.bits[PAGE_BREAK_INSIDE_INDEX];
@@ -1762,6 +2552,15 @@ static inline uint8_t get_page_break_inside(const
css_computed_style *style)
#define POSITION_INDEX 13
#define POSITION_SHIFT 25
#define POSITION_MASK 0xe000000
+static inline uint8_t get_position_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[POSITION_INDEX];
+ bits &= POSITION_MASK;
+ bits >>= POSITION_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_position(const css_computed_style *style)
{
uint32_t bits = style->i.bits[POSITION_INDEX];
@@ -1779,6 +2578,15 @@ static inline uint8_t get_position(const css_computed_style
*style)
#define QUOTES_INDEX 13
#define QUOTES_SHIFT 0
#define QUOTES_MASK 0x1
+static inline uint8_t get_quotes_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[QUOTES_INDEX];
+ bits &= QUOTES_MASK;
+ bits >>= QUOTES_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_quotes(const css_computed_style *style, lwc_string
***string_arr)
{
@@ -1798,31 +2606,29 @@ static inline uint8_t get_quotes(const css_computed_style *style,
lwc_string
#define RIGHT_INDEX 4
#define RIGHT_SHIFT 11
#define RIGHT_MASK 0x3f800
-static inline uint8_t get_right(
- const css_computed_style *style,
- css_fixed *length, css_unit *unit)
+static inline uint8_t get_right_bits(const css_computed_style *style)
{
uint32_t bits = style->i.bits[RIGHT_INDEX];
bits &= RIGHT_MASK;
bits >>= RIGHT_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- if ((bits & 0x3) == CSS_RIGHT_SET) {
- *length = style->i.right;
- *unit = bits >> 2;
- }
-
+
+ /* 7bits: uuuuutt : unit | type */
return (bits & 0x3);
}
-static inline uint8_t get_right_bits(
- const css_computed_style *style)
+static inline uint8_t get_right(const css_computed_style *style, css_fixed
+ *length, css_unit *unit)
{
uint32_t bits = style->i.bits[RIGHT_INDEX];
bits &= RIGHT_MASK;
bits >>= RIGHT_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- return bits;
+
+ /* 7bits: uuuuutt : unit | type */
+ if ((bits & 0x3) == CSS_RIGHT_SET) {
+ *length = style->i.right;
+ *unit = bits >> 2;
+ }
+
+ return (bits & 0x3);
}
#undef RIGHT_INDEX
#undef RIGHT_SHIFT
@@ -1831,6 +2637,15 @@ static inline uint8_t get_right_bits(
#define TABLE_LAYOUT_INDEX 10
#define TABLE_LAYOUT_SHIFT 10
#define TABLE_LAYOUT_MASK 0xc00
+static inline uint8_t get_table_layout_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[TABLE_LAYOUT_INDEX];
+ bits &= TABLE_LAYOUT_MASK;
+ bits >>= TABLE_LAYOUT_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_table_layout(const css_computed_style *style)
{
uint32_t bits = style->i.bits[TABLE_LAYOUT_INDEX];
@@ -1848,6 +2663,15 @@ static inline uint8_t get_table_layout(const css_computed_style
*style)
#define TEXT_ALIGN_INDEX 4
#define TEXT_ALIGN_SHIFT 0
#define TEXT_ALIGN_MASK 0xf
+static inline uint8_t get_text_align_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[TEXT_ALIGN_INDEX];
+ bits &= TEXT_ALIGN_MASK;
+ bits >>= TEXT_ALIGN_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_text_align(const css_computed_style *style)
{
uint32_t bits = style->i.bits[TEXT_ALIGN_INDEX];
@@ -1865,6 +2689,15 @@ static inline uint8_t get_text_align(const css_computed_style
*style)
#define TEXT_DECORATION_INDEX 3
#define TEXT_DECORATION_SHIFT 0
#define TEXT_DECORATION_MASK 0x1f
+static inline uint8_t get_text_decoration_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[TEXT_DECORATION_INDEX];
+ bits &= TEXT_DECORATION_MASK;
+ bits >>= TEXT_DECORATION_SHIFT;
+
+ /* 5bits: ttttt : type */
+ return (bits & 0x1f);
+}
static inline uint8_t get_text_decoration(const css_computed_style *style)
{
uint32_t bits = style->i.bits[TEXT_DECORATION_INDEX];
@@ -1882,6 +2715,15 @@ static inline uint8_t get_text_decoration(const css_computed_style
*style)
#define TEXT_INDENT_INDEX 2
#define TEXT_INDENT_SHIFT 0
#define TEXT_INDENT_MASK 0x3f
+static inline uint8_t get_text_indent_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[TEXT_INDENT_INDEX];
+ bits &= TEXT_INDENT_MASK;
+ bits >>= TEXT_INDENT_SHIFT;
+
+ /* 6bits: uuuuut : unit | type */
+ return (bits & 0x1);
+}
static inline uint8_t get_text_indent(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1904,6 +2746,15 @@ static inline uint8_t get_text_indent(const css_computed_style
*style,
#define TEXT_TRANSFORM_INDEX 9
#define TEXT_TRANSFORM_SHIFT 0
#define TEXT_TRANSFORM_MASK 0x7
+static inline uint8_t get_text_transform_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[TEXT_TRANSFORM_INDEX];
+ bits &= TEXT_TRANSFORM_MASK;
+ bits >>= TEXT_TRANSFORM_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_text_transform(const css_computed_style *style)
{
uint32_t bits = style->i.bits[TEXT_TRANSFORM_INDEX];
@@ -1921,31 +2772,29 @@ static inline uint8_t get_text_transform(const css_computed_style
*style)
#define TOP_INDEX 4
#define TOP_SHIFT 18
#define TOP_MASK 0x1fc0000
-static inline uint8_t get_top(
- const css_computed_style *style,
- css_fixed *length, css_unit *unit)
+static inline uint8_t get_top_bits(const css_computed_style *style)
{
uint32_t bits = style->i.bits[TOP_INDEX];
bits &= TOP_MASK;
bits >>= TOP_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- if ((bits & 0x3) == CSS_TOP_SET) {
- *length = style->i.top;
- *unit = bits >> 2;
- }
-
+
+ /* 7bits: uuuuutt : unit | type */
return (bits & 0x3);
}
-static inline uint8_t get_top_bits(
- const css_computed_style *style)
+static inline uint8_t get_top(const css_computed_style *style, css_fixed
+ *length, css_unit *unit)
{
uint32_t bits = style->i.bits[TOP_INDEX];
bits &= TOP_MASK;
bits >>= TOP_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- return bits;
+
+ /* 7bits: uuuuutt : unit | type */
+ if ((bits & 0x3) == CSS_TOP_SET) {
+ *length = style->i.top;
+ *unit = bits >> 2;
+ }
+
+ return (bits & 0x3);
}
#undef TOP_INDEX
#undef TOP_SHIFT
@@ -1954,6 +2803,15 @@ static inline uint8_t get_top_bits(
#define UNICODE_BIDI_INDEX 10
#define UNICODE_BIDI_SHIFT 12
#define UNICODE_BIDI_MASK 0x3000
+static inline uint8_t get_unicode_bidi_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[UNICODE_BIDI_INDEX];
+ bits &= UNICODE_BIDI_MASK;
+ bits >>= UNICODE_BIDI_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_unicode_bidi(const css_computed_style *style)
{
uint32_t bits = style->i.bits[UNICODE_BIDI_INDEX];
@@ -1971,6 +2829,15 @@ static inline uint8_t get_unicode_bidi(const css_computed_style
*style)
#define VERTICAL_ALIGN_INDEX 12
#define VERTICAL_ALIGN_SHIFT 1
#define VERTICAL_ALIGN_MASK 0x3fe
+static inline uint8_t get_vertical_align_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[VERTICAL_ALIGN_INDEX];
+ bits &= VERTICAL_ALIGN_MASK;
+ bits >>= VERTICAL_ALIGN_SHIFT;
+
+ /* 9bits: uuuuutttt : unit | type */
+ return (bits & 0xf);
+}
static inline uint8_t get_vertical_align(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1993,6 +2860,15 @@ static inline uint8_t get_vertical_align(const css_computed_style
*style,
#define VISIBILITY_INDEX 10
#define VISIBILITY_SHIFT 14
#define VISIBILITY_MASK 0xc000
+static inline uint8_t get_visibility_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[VISIBILITY_INDEX];
+ bits &= VISIBILITY_MASK;
+ bits >>= VISIBILITY_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_visibility(const css_computed_style *style)
{
uint32_t bits = style->i.bits[VISIBILITY_INDEX];
@@ -2010,6 +2886,15 @@ static inline uint8_t get_visibility(const css_computed_style
*style)
#define WHITE_SPACE_INDEX 8
#define WHITE_SPACE_SHIFT 0
#define WHITE_SPACE_MASK 0x7
+static inline uint8_t get_white_space_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[WHITE_SPACE_INDEX];
+ bits &= WHITE_SPACE_MASK;
+ bits >>= WHITE_SPACE_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_white_space(const css_computed_style *style)
{
uint32_t bits = style->i.bits[WHITE_SPACE_INDEX];
@@ -2027,6 +2912,15 @@ static inline uint8_t get_white_space(const css_computed_style
*style)
#define WIDOWS_INDEX 12
#define WIDOWS_SHIFT 0
#define WIDOWS_MASK 0x1
+static inline uint8_t get_widows_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[WIDOWS_INDEX];
+ bits &= WIDOWS_MASK;
+ bits >>= WIDOWS_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_widows(const css_computed_style *style, int32_t
*integer)
{
@@ -2046,6 +2940,15 @@ static inline uint8_t get_widows(const css_computed_style *style,
int32_t
#define WIDTH_INDEX 4
#define WIDTH_SHIFT 25
#define WIDTH_MASK 0xfe000000
+static inline uint8_t get_width_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[WIDTH_INDEX];
+ bits &= WIDTH_MASK;
+ bits >>= WIDTH_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_width(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -2068,6 +2971,15 @@ static inline uint8_t get_width(const css_computed_style *style,
css_fixed
#define WORD_SPACING_INDEX 1
#define WORD_SPACING_SHIFT 0
#define WORD_SPACING_MASK 0x7f
+static inline uint8_t get_word_spacing_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[WORD_SPACING_INDEX];
+ bits &= WORD_SPACING_MASK;
+ bits >>= WORD_SPACING_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_word_spacing(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -2090,6 +3002,15 @@ static inline uint8_t get_word_spacing(const css_computed_style
*style,
#define WRITING_MODE_INDEX 10
#define WRITING_MODE_SHIFT 16
#define WRITING_MODE_MASK 0x30000
+static inline uint8_t get_writing_mode_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[WRITING_MODE_INDEX];
+ bits &= WRITING_MODE_MASK;
+ bits >>= WRITING_MODE_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_writing_mode(const css_computed_style *style)
{
uint32_t bits = style->i.bits[WRITING_MODE_INDEX];
@@ -2107,6 +3028,15 @@ static inline uint8_t get_writing_mode(const css_computed_style
*style)
#define Z_INDEX_INDEX 10
#define Z_INDEX_SHIFT 18
#define Z_INDEX_MASK 0xc0000
+static inline uint8_t get_z_index_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[Z_INDEX_INDEX];
+ bits &= Z_INDEX_MASK;
+ bits >>= Z_INDEX_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_z_index(const css_computed_style *style, int32_t
*integer)
{
diff --git a/src/select/overrides.py b/src/select/overrides.py
index b4d349a..869d6ec 100644
--- a/src/select/overrides.py
+++ b/src/select/overrides.py
@@ -183,35 +183,3 @@ static inline css_error set_content(
return CSS_OK;
}'''
-
-get_side = '''\
-static inline uint8_t get_{0}(
- const css_computed_style *style,
- css_fixed *length, css_unit *unit)
-{{
- uint32_t bits = style->i.bits[{1}_INDEX];
- bits &= {1}_MASK;
- bits >>= {1}_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- if ((bits & 0x3) == CSS_{1}_SET) {{
- *length = style->i.{0};
- *unit = bits >> 2;
- }}
-
- return (bits & 0x3);
-}}
-static inline uint8_t get_{0}_bits(
- const css_computed_style *style)
-{{
- uint32_t bits = style->i.bits[{1}_INDEX];
- bits &= {1}_MASK;
- bits >>= {1}_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- return bits;
-}}'''
-overrides['get']['top'] = get_side.format('top', 'TOP')
-overrides['get']['right'] = get_side.format('right',
'RIGHT')
-overrides['get']['bottom'] = get_side.format('bottom',
'BOTTOM')
-overrides['get']['left'] = get_side.format('left',
'LEFT')
diff --git a/src/select/select_generator.py b/src/select/select_generator.py
index dcb0429..05a4511 100644
--- a/src/select/select_generator.py
+++ b/src/select/select_generator.py
@@ -707,14 +707,15 @@ class CSSGroup:
return t.to_string()
- def print_propget(self, t, p):
+ def print_propget(self, t, p, only_bits=False):
i_dot, grp = self.get_idot_grp()
- vals = p.get_param_values(pointer=True)
+ vals = [] if only_bits else p.get_param_values(pointer=True)
params = ', '.join([ 'css_computed_style *style' ]
+ [ ' '.join(x) for x in vals ])
- t.append('static inline uint8_t get_{}(const {})'.format(
- p.name, params))
+ underscore_bits = '_bits' if only_bits else ''
+ t.append('static inline uint8_t get_{}{}(const {})'.format(
+ p.name, underscore_bits, params))
t.append('{')
t.indent(1)
@@ -731,27 +732,29 @@ class CSSGroup:
type_mask, shift_list, bits_comment = p.get_bits()
t.append(bits_comment)
- if p.condition:
- t.append('if ((bits & {}) == {}) {{'.format(
- type_mask, p.condition))
- t.indent(1)
+ if only_bits == False:
- for v in p.values:
- this_idot = '' if v.is_ptr and v.name != 'string' else i_dot
- t.append('*{} = style{}->{}{};'.format(
- v.name + v.suffix, grp, this_idot, p.name + v.suffix))
- for i, v in enumerate(list(reversed(shift_list))):
- if i == 0:
- t.append('*{} = bits >> {};'.format(v[0], v[1]))
- else:
- t.append('*{} = (bits & 0x{:x}) >> {};'.format(
- v[0], v[2], v[1]).lower())
+ if p.condition:
+ t.append('if ((bits & {}) == {}) {{'.format(
+ type_mask, p.condition))
+ t.indent(1)
- if p.condition:
- t.indent(-1)
- t.append('}')
+ for v in p.values:
+ this_idot = '' if v.is_ptr and v.name != 'string' else
i_dot
+ t.append('*{} = style{}->{}{};'.format(
+ v.name + v.suffix, grp, this_idot, p.name + v.suffix))
+ for i, v in enumerate(list(reversed(shift_list))):
+ if i == 0:
+ t.append('*{} = bits >> {};'.format(v[0], v[1]))
+ else:
+ t.append('*{} = (bits & 0x{:x}) >> {};'.format(
+ v[0], v[2], v[1]).lower())
+
+ if p.condition:
+ t.indent(-1)
+ t.append('}')
+ t.append()
- t.append()
t.append('return (bits & {});'.format(type_mask))
if self.name != 'style':
@@ -779,6 +782,8 @@ class CSSGroup:
t.append()
t.append(defines)
+ self.print_propget(t, p, True)
+
if p.name in overrides['get']:
t.append(overrides['get'][p.name], pre_formatted=True)
else:
commitdiff
http://git.netsurf-browser.org/libcss.git/commit/?id=609e1623335d5d514743...
commit 609e1623335d5d5147439c5ba600152e963fc951
Author: Michael Drake <tlsa(a)netsurf-browser.org>
Commit: Michael Drake <mdrake.unique(a)gmail.com>
select: generator: Split out propget printer
diff --git a/src/select/select_generator.py b/src/select/select_generator.py
index ece7a91..dcb0429 100644
--- a/src/select/select_generator.py
+++ b/src/select/select_generator.py
@@ -707,80 +707,83 @@ class CSSGroup:
return t.to_string()
- def make_propget_h(self):
- """Output this group's property functions for the propget.h
file."""
- t = Text()
+ def print_propget(self, t, p):
i_dot, grp = self.get_idot_grp()
- for p in sorted(self.props, key=(lambda x: x.name)):
- defines, undefs = p.def_undefs
+ vals = p.get_param_values(pointer=True)
+ params = ', '.join([ 'css_computed_style *style' ]
+ + [ ' '.join(x) for x in vals ])
+ t.append('static inline uint8_t get_{}(const {})'.format(
+ p.name, params))
+ t.append('{')
+ t.indent(1)
- t.append()
- t.append(defines)
+ if self.name != 'style':
+ t.append('if (style{} != NULL) {{'.format(grp))
+ t.indent(1)
- if p.name in overrides['get']:
- t.append(overrides['get'][p.name], pre_formatted=True)
- t.append(undefs)
- continue
+ t.append('uint32_t bits = style{}->{}bits[{}_INDEX];'.format(
+ grp, i_dot, p.name.upper()))
+ t.append('bits &= {}_MASK;'.format(p.name.upper()))
+ t.append('bits >>= {}_SHIFT;'.format(p.name.upper()))
+ t.append()
- vals = p.get_param_values(pointer=True)
- params = ', '.join([ 'css_computed_style *style' ]
- + [ ' '.join(x) for x in vals ])
- t.append('static inline uint8_t get_{}(const {})'.format(
- p.name, params))
- t.append('{')
- t.indent(1)
+ type_mask, shift_list, bits_comment = p.get_bits()
+ t.append(bits_comment)
- if self.name != 'style':
- t.append('if (style{} != NULL) {{'.format(grp))
- t.indent(1)
+ if p.condition:
+ t.append('if ((bits & {}) == {}) {{'.format(
+ type_mask, p.condition))
+ t.indent(1)
- t.append('uint32_t bits = style{}->{}bits[{}_INDEX];'.format(
- grp, i_dot, p.name.upper()))
- t.append('bits &= {}_MASK;'.format(p.name.upper()))
- t.append('bits >>= {}_SHIFT;'.format(p.name.upper()))
- t.append()
+ for v in p.values:
+ this_idot = '' if v.is_ptr and v.name != 'string' else i_dot
+ t.append('*{} = style{}->{}{};'.format(
+ v.name + v.suffix, grp, this_idot, p.name + v.suffix))
+ for i, v in enumerate(list(reversed(shift_list))):
+ if i == 0:
+ t.append('*{} = bits >> {};'.format(v[0], v[1]))
+ else:
+ t.append('*{} = (bits & 0x{:x}) >> {};'.format(
+ v[0], v[2], v[1]).lower())
- type_mask, shift_list, bits_comment = p.get_bits()
- t.append(bits_comment)
+ if p.condition:
+ t.indent(-1)
+ t.append('}')
- if p.condition:
- t.append('if ((bits & {}) == {}) {{'.format(
- type_mask, p.condition))
- t.indent(1)
+ t.append()
+ t.append('return (bits & {});'.format(type_mask))
+ if self.name != 'style':
+ t.indent(-1)
+ t.append('}')
+ t.append()
+ t.append('/* Initial value */')
for v in p.values:
- this_idot = '' if v.is_ptr and v.name != 'string' else
i_dot
- t.append('*{} = style{}->{}{};'.format(
- v.name + v.suffix, grp, this_idot, p.name + v.suffix))
- for i, v in enumerate(list(reversed(shift_list))):
- if i == 0:
- t.append('*{} = bits >> {};'.format(v[0], v[1]))
- else:
- t.append('*{} = (bits & 0x{:x}) >> {};'.format(
- v[0], v[2], v[1]).lower())
+ t.append('*{} = {};'.format(v.name + v.suffix, v.defaults))
+ if v.bits is not None:
+ t.append('*{} = {};'.format(
+ v.bits['name'] + v.suffix, v.bits['defaults']))
+ t.append('return {};'.format(p.defaults))
- if p.condition:
- t.indent(-1)
- t.append('}')
+ t.indent(-1)
+ t.append('}')
+
+ def make_propget_h(self):
+ """Output this group's property functions for the propget.h
file."""
+ t = Text()
+
+ for p in sorted(self.props, key=(lambda x: x.name)):
+ defines, undefs = p.def_undefs
t.append()
- t.append('return (bits & {});'.format(type_mask))
+ t.append(defines)
- if self.name != 'style':
- t.indent(-1)
- t.append('}')
- t.append()
- t.append('/* Initial value */')
- for v in p.values:
- t.append('*{} = {};'.format(v.name + v.suffix, v.defaults))
- if v.bits is not None:
- t.append('*{} = {};'.format(
- v.bits['name'] + v.suffix,
v.bits['defaults']))
- t.append('return {};'.format(p.defaults))
+ if p.name in overrides['get']:
+ t.append(overrides['get'][p.name], pre_formatted=True)
+ else:
+ self.print_propget(t, p)
- t.indent(-1)
- t.append('}')
t.append(undefs)
return t.to_string()
-----------------------------------------------------------------------
Summary of changes:
src/select/autogenerated_propget.h | 1070 +++++++++++++++++++++++++++++++++---
src/select/overrides.py | 32 --
src/select/select_generator.py | 92 ++--
3 files changed, 1050 insertions(+), 144 deletions(-)
diff --git a/src/select/autogenerated_propget.h b/src/select/autogenerated_propget.h
index cf82c86..6c958aa 100644
--- a/src/select/autogenerated_propget.h
+++ b/src/select/autogenerated_propget.h
@@ -9,6 +9,15 @@
#define ALIGN_CONTENT_INDEX 10
#define ALIGN_CONTENT_SHIFT 20
#define ALIGN_CONTENT_MASK 0x700000
+static inline uint8_t get_align_content_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[ALIGN_CONTENT_INDEX];
+ bits &= ALIGN_CONTENT_MASK;
+ bits >>= ALIGN_CONTENT_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_align_content(const css_computed_style *style)
{
uint32_t bits = style->i.bits[ALIGN_CONTENT_INDEX];
@@ -26,6 +35,15 @@ static inline uint8_t get_align_content(const css_computed_style
*style)
#define ALIGN_ITEMS_INDEX 10
#define ALIGN_ITEMS_SHIFT 23
#define ALIGN_ITEMS_MASK 0x3800000
+static inline uint8_t get_align_items_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[ALIGN_ITEMS_INDEX];
+ bits &= ALIGN_ITEMS_MASK;
+ bits >>= ALIGN_ITEMS_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_align_items(const css_computed_style *style)
{
uint32_t bits = style->i.bits[ALIGN_ITEMS_INDEX];
@@ -43,6 +61,15 @@ static inline uint8_t get_align_items(const css_computed_style *style)
#define ALIGN_SELF_INDEX 10
#define ALIGN_SELF_SHIFT 26
#define ALIGN_SELF_MASK 0x1c000000
+static inline uint8_t get_align_self_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[ALIGN_SELF_INDEX];
+ bits &= ALIGN_SELF_MASK;
+ bits >>= ALIGN_SELF_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_align_self(const css_computed_style *style)
{
uint32_t bits = style->i.bits[ALIGN_SELF_INDEX];
@@ -60,6 +87,16 @@ static inline uint8_t get_align_self(const css_computed_style *style)
#define BACKGROUND_ATTACHMENT_INDEX 14
#define BACKGROUND_ATTACHMENT_SHIFT 28
#define BACKGROUND_ATTACHMENT_MASK 0x30000000
+static inline uint8_t get_background_attachment_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BACKGROUND_ATTACHMENT_INDEX];
+ bits &= BACKGROUND_ATTACHMENT_MASK;
+ bits >>= BACKGROUND_ATTACHMENT_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_background_attachment(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BACKGROUND_ATTACHMENT_INDEX];
@@ -77,6 +114,15 @@ static inline uint8_t get_background_attachment(const
css_computed_style *style)
#define BACKGROUND_COLOR_INDEX 14
#define BACKGROUND_COLOR_SHIFT 30
#define BACKGROUND_COLOR_MASK 0xc0000000
+static inline uint8_t get_background_color_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BACKGROUND_COLOR_INDEX];
+ bits &= BACKGROUND_COLOR_MASK;
+ bits >>= BACKGROUND_COLOR_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_background_color(const css_computed_style *style,
css_color *color)
{
@@ -96,6 +142,15 @@ static inline uint8_t get_background_color(const css_computed_style
*style,
#define BACKGROUND_IMAGE_INDEX 14
#define BACKGROUND_IMAGE_SHIFT 18
#define BACKGROUND_IMAGE_MASK 0x40000
+static inline uint8_t get_background_image_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BACKGROUND_IMAGE_INDEX];
+ bits &= BACKGROUND_IMAGE_MASK;
+ bits >>= BACKGROUND_IMAGE_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_background_image(const css_computed_style *style,
lwc_string **string)
{
@@ -115,6 +170,16 @@ static inline uint8_t get_background_image(const css_computed_style
*style,
#define BACKGROUND_POSITION_INDEX 12
#define BACKGROUND_POSITION_SHIFT 10
#define BACKGROUND_POSITION_MASK 0x1ffc00
+static inline uint8_t get_background_position_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BACKGROUND_POSITION_INDEX];
+ bits &= BACKGROUND_POSITION_MASK;
+ bits >>= BACKGROUND_POSITION_SHIFT;
+
+ /* 11bits: aaaaabbbbbt : unit_a | unit_b | type */
+ return (bits & 0x1);
+}
static inline uint8_t get_background_position(const css_computed_style *style,
css_fixed *length_a, css_unit *unit_a, css_fixed *length_b,
css_unit *unit_b)
@@ -140,6 +205,16 @@ static inline uint8_t get_background_position(const
css_computed_style *style,
#define BACKGROUND_REPEAT_INDEX 10
#define BACKGROUND_REPEAT_SHIFT 29
#define BACKGROUND_REPEAT_MASK 0xe0000000
+static inline uint8_t get_background_repeat_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BACKGROUND_REPEAT_INDEX];
+ bits &= BACKGROUND_REPEAT_MASK;
+ bits >>= BACKGROUND_REPEAT_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_background_repeat(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BACKGROUND_REPEAT_INDEX];
@@ -157,6 +232,16 @@ static inline uint8_t get_background_repeat(const css_computed_style
*style)
#define BORDER_BOTTOM_COLOR_INDEX 11
#define BORDER_BOTTOM_COLOR_SHIFT 0
#define BORDER_BOTTOM_COLOR_MASK 0x3
+static inline uint8_t get_border_bottom_color_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BORDER_BOTTOM_COLOR_INDEX];
+ bits &= BORDER_BOTTOM_COLOR_MASK;
+ bits >>= BORDER_BOTTOM_COLOR_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_border_bottom_color(const css_computed_style *style,
css_color *color)
{
@@ -176,6 +261,16 @@ static inline uint8_t get_border_bottom_color(const
css_computed_style *style,
#define BORDER_BOTTOM_STYLE_INDEX 13
#define BORDER_BOTTOM_STYLE_SHIFT 28
#define BORDER_BOTTOM_STYLE_MASK 0xf0000000
+static inline uint8_t get_border_bottom_style_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BORDER_BOTTOM_STYLE_INDEX];
+ bits &= BORDER_BOTTOM_STYLE_MASK;
+ bits >>= BORDER_BOTTOM_STYLE_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_border_bottom_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BORDER_BOTTOM_STYLE_INDEX];
@@ -193,6 +288,16 @@ static inline uint8_t get_border_bottom_style(const
css_computed_style *style)
#define BORDER_BOTTOM_WIDTH_INDEX 0
#define BORDER_BOTTOM_WIDTH_SHIFT 0
#define BORDER_BOTTOM_WIDTH_MASK 0xff
+static inline uint8_t get_border_bottom_width_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BORDER_BOTTOM_WIDTH_INDEX];
+ bits &= BORDER_BOTTOM_WIDTH_MASK;
+ bits >>= BORDER_BOTTOM_WIDTH_SHIFT;
+
+ /* 8bits: uuuuuttt : unit | type */
+ return (bits & 0x7);
+}
static inline uint8_t get_border_bottom_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -215,6 +320,15 @@ static inline uint8_t get_border_bottom_width(const
css_computed_style *style,
#define BORDER_COLLAPSE_INDEX 11
#define BORDER_COLLAPSE_SHIFT 2
#define BORDER_COLLAPSE_MASK 0xc
+static inline uint8_t get_border_collapse_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BORDER_COLLAPSE_INDEX];
+ bits &= BORDER_COLLAPSE_MASK;
+ bits >>= BORDER_COLLAPSE_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_border_collapse(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BORDER_COLLAPSE_INDEX];
@@ -232,6 +346,16 @@ static inline uint8_t get_border_collapse(const css_computed_style
*style)
#define BORDER_LEFT_COLOR_INDEX 11
#define BORDER_LEFT_COLOR_SHIFT 4
#define BORDER_LEFT_COLOR_MASK 0x30
+static inline uint8_t get_border_left_color_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BORDER_LEFT_COLOR_INDEX];
+ bits &= BORDER_LEFT_COLOR_MASK;
+ bits >>= BORDER_LEFT_COLOR_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_border_left_color(const css_computed_style *style,
css_color *color)
{
@@ -251,6 +375,16 @@ static inline uint8_t get_border_left_color(const css_computed_style
*style,
#define BORDER_LEFT_STYLE_INDEX 9
#define BORDER_LEFT_STYLE_SHIFT 3
#define BORDER_LEFT_STYLE_MASK 0x78
+static inline uint8_t get_border_left_style_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BORDER_LEFT_STYLE_INDEX];
+ bits &= BORDER_LEFT_STYLE_MASK;
+ bits >>= BORDER_LEFT_STYLE_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_border_left_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BORDER_LEFT_STYLE_INDEX];
@@ -268,6 +402,16 @@ static inline uint8_t get_border_left_style(const css_computed_style
*style)
#define BORDER_LEFT_WIDTH_INDEX 0
#define BORDER_LEFT_WIDTH_SHIFT 8
#define BORDER_LEFT_WIDTH_MASK 0xff00
+static inline uint8_t get_border_left_width_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BORDER_LEFT_WIDTH_INDEX];
+ bits &= BORDER_LEFT_WIDTH_MASK;
+ bits >>= BORDER_LEFT_WIDTH_SHIFT;
+
+ /* 8bits: uuuuuttt : unit | type */
+ return (bits & 0x7);
+}
static inline uint8_t get_border_left_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -290,6 +434,16 @@ static inline uint8_t get_border_left_width(const css_computed_style
*style,
#define BORDER_RIGHT_COLOR_INDEX 11
#define BORDER_RIGHT_COLOR_SHIFT 6
#define BORDER_RIGHT_COLOR_MASK 0xc0
+static inline uint8_t get_border_right_color_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BORDER_RIGHT_COLOR_INDEX];
+ bits &= BORDER_RIGHT_COLOR_MASK;
+ bits >>= BORDER_RIGHT_COLOR_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_border_right_color(const css_computed_style *style,
css_color *color)
{
@@ -309,6 +463,16 @@ static inline uint8_t get_border_right_color(const css_computed_style
*style,
#define BORDER_RIGHT_STYLE_INDEX 9
#define BORDER_RIGHT_STYLE_SHIFT 7
#define BORDER_RIGHT_STYLE_MASK 0x780
+static inline uint8_t get_border_right_style_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BORDER_RIGHT_STYLE_INDEX];
+ bits &= BORDER_RIGHT_STYLE_MASK;
+ bits >>= BORDER_RIGHT_STYLE_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_border_right_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BORDER_RIGHT_STYLE_INDEX];
@@ -326,6 +490,16 @@ static inline uint8_t get_border_right_style(const css_computed_style
*style)
#define BORDER_RIGHT_WIDTH_INDEX 0
#define BORDER_RIGHT_WIDTH_SHIFT 16
#define BORDER_RIGHT_WIDTH_MASK 0xff0000
+static inline uint8_t get_border_right_width_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[BORDER_RIGHT_WIDTH_INDEX];
+ bits &= BORDER_RIGHT_WIDTH_MASK;
+ bits >>= BORDER_RIGHT_WIDTH_SHIFT;
+
+ /* 8bits: uuuuuttt : unit | type */
+ return (bits & 0x7);
+}
static inline uint8_t get_border_right_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -348,6 +522,15 @@ static inline uint8_t get_border_right_width(const css_computed_style
*style,
#define BORDER_SPACING_INDEX 12
#define BORDER_SPACING_SHIFT 21
#define BORDER_SPACING_MASK 0xffe00000
+static inline uint8_t get_border_spacing_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BORDER_SPACING_INDEX];
+ bits &= BORDER_SPACING_MASK;
+ bits >>= BORDER_SPACING_SHIFT;
+
+ /* 11bits: aaaaabbbbbt : unit_a | unit_b | type */
+ return (bits & 0x1);
+}
static inline uint8_t get_border_spacing(const css_computed_style *style,
css_fixed *length_a, css_unit *unit_a, css_fixed *length_b,
css_unit *unit_b)
@@ -373,6 +556,15 @@ static inline uint8_t get_border_spacing(const css_computed_style
*style,
#define BORDER_TOP_COLOR_INDEX 11
#define BORDER_TOP_COLOR_SHIFT 8
#define BORDER_TOP_COLOR_MASK 0x300
+static inline uint8_t get_border_top_color_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BORDER_TOP_COLOR_INDEX];
+ bits &= BORDER_TOP_COLOR_MASK;
+ bits >>= BORDER_TOP_COLOR_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_border_top_color(const css_computed_style *style,
css_color *color)
{
@@ -392,6 +584,15 @@ static inline uint8_t get_border_top_color(const css_computed_style
*style,
#define BORDER_TOP_STYLE_INDEX 9
#define BORDER_TOP_STYLE_SHIFT 11
#define BORDER_TOP_STYLE_MASK 0x7800
+static inline uint8_t get_border_top_style_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BORDER_TOP_STYLE_INDEX];
+ bits &= BORDER_TOP_STYLE_MASK;
+ bits >>= BORDER_TOP_STYLE_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_border_top_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BORDER_TOP_STYLE_INDEX];
@@ -409,6 +610,15 @@ static inline uint8_t get_border_top_style(const css_computed_style
*style)
#define BORDER_TOP_WIDTH_INDEX 0
#define BORDER_TOP_WIDTH_SHIFT 24
#define BORDER_TOP_WIDTH_MASK 0xff000000
+static inline uint8_t get_border_top_width_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BORDER_TOP_WIDTH_INDEX];
+ bits &= BORDER_TOP_WIDTH_MASK;
+ bits >>= BORDER_TOP_WIDTH_SHIFT;
+
+ /* 8bits: uuuuuttt : unit | type */
+ return (bits & 0x7);
+}
static inline uint8_t get_border_top_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -431,31 +641,29 @@ static inline uint8_t get_border_top_width(const css_computed_style
*style,
#define BOTTOM_INDEX 3
#define BOTTOM_SHIFT 11
#define BOTTOM_MASK 0x3f800
-static inline uint8_t get_bottom(
- const css_computed_style *style,
- css_fixed *length, css_unit *unit)
+static inline uint8_t get_bottom_bits(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BOTTOM_INDEX];
bits &= BOTTOM_MASK;
bits >>= BOTTOM_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- if ((bits & 0x3) == CSS_BOTTOM_SET) {
- *length = style->i.bottom;
- *unit = bits >> 2;
- }
-
+
+ /* 7bits: uuuuutt : unit | type */
return (bits & 0x3);
}
-static inline uint8_t get_bottom_bits(
- const css_computed_style *style)
+static inline uint8_t get_bottom(const css_computed_style *style, css_fixed
+ *length, css_unit *unit)
{
uint32_t bits = style->i.bits[BOTTOM_INDEX];
bits &= BOTTOM_MASK;
bits >>= BOTTOM_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- return bits;
+
+ /* 7bits: uuuuutt : unit | type */
+ if ((bits & 0x3) == CSS_BOTTOM_SET) {
+ *length = style->i.bottom;
+ *unit = bits >> 2;
+ }
+
+ return (bits & 0x3);
}
#undef BOTTOM_INDEX
#undef BOTTOM_SHIFT
@@ -464,6 +672,15 @@ static inline uint8_t get_bottom_bits(
#define BOX_SIZING_INDEX 11
#define BOX_SIZING_SHIFT 10
#define BOX_SIZING_MASK 0xc00
+static inline uint8_t get_box_sizing_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BOX_SIZING_INDEX];
+ bits &= BOX_SIZING_MASK;
+ bits >>= BOX_SIZING_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_box_sizing(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BOX_SIZING_INDEX];
@@ -481,6 +698,15 @@ static inline uint8_t get_box_sizing(const css_computed_style
*style)
#define BREAK_AFTER_INDEX 9
#define BREAK_AFTER_SHIFT 15
#define BREAK_AFTER_MASK 0x78000
+static inline uint8_t get_break_after_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BREAK_AFTER_INDEX];
+ bits &= BREAK_AFTER_MASK;
+ bits >>= BREAK_AFTER_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_break_after(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BREAK_AFTER_INDEX];
@@ -498,6 +724,15 @@ static inline uint8_t get_break_after(const css_computed_style
*style)
#define BREAK_BEFORE_INDEX 9
#define BREAK_BEFORE_SHIFT 19
#define BREAK_BEFORE_MASK 0x780000
+static inline uint8_t get_break_before_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BREAK_BEFORE_INDEX];
+ bits &= BREAK_BEFORE_MASK;
+ bits >>= BREAK_BEFORE_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_break_before(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BREAK_BEFORE_INDEX];
@@ -515,6 +750,15 @@ static inline uint8_t get_break_before(const css_computed_style
*style)
#define BREAK_INSIDE_INDEX 9
#define BREAK_INSIDE_SHIFT 23
#define BREAK_INSIDE_MASK 0x7800000
+static inline uint8_t get_break_inside_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[BREAK_INSIDE_INDEX];
+ bits &= BREAK_INSIDE_MASK;
+ bits >>= BREAK_INSIDE_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_break_inside(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BREAK_INSIDE_INDEX];
@@ -532,6 +776,15 @@ static inline uint8_t get_break_inside(const css_computed_style
*style)
#define CAPTION_SIDE_INDEX 11
#define CAPTION_SIDE_SHIFT 12
#define CAPTION_SIDE_MASK 0x3000
+static inline uint8_t get_caption_side_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[CAPTION_SIDE_INDEX];
+ bits &= CAPTION_SIDE_MASK;
+ bits >>= CAPTION_SIDE_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_caption_side(const css_computed_style *style)
{
uint32_t bits = style->i.bits[CAPTION_SIDE_INDEX];
@@ -549,6 +802,15 @@ static inline uint8_t get_caption_side(const css_computed_style
*style)
#define CLEAR_INDEX 13
#define CLEAR_SHIFT 1
#define CLEAR_MASK 0xe
+static inline uint8_t get_clear_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[CLEAR_INDEX];
+ bits &= CLEAR_MASK;
+ bits >>= CLEAR_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_clear(const css_computed_style *style)
{
uint32_t bits = style->i.bits[CLEAR_INDEX];
@@ -566,6 +828,16 @@ static inline uint8_t get_clear(const css_computed_style *style)
#define CLIP_INDEX 2
#define CLIP_SHIFT 6
#define CLIP_MASK 0xffffffc0
+static inline uint8_t get_clip_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[CLIP_INDEX];
+ bits &= CLIP_MASK;
+ bits >>= CLIP_SHIFT;
+
+ /* 26bits: aaaaabbbbbcccccdddddtttttt : unit_a | unit_b | unit_c |
+ unit_d | type */
+ return (bits & 0x3f);
+}
static inline uint8_t get_clip(
const css_computed_style *style,
css_computed_clip_rect *rect)
@@ -608,15 +880,24 @@ static inline uint8_t get_clip(
#define COLOR_INDEX 14
#define COLOR_SHIFT 19
#define COLOR_MASK 0x80000
-static inline uint8_t get_color(const css_computed_style *style, css_color
- *color)
+static inline uint8_t get_color_bits(const css_computed_style *style)
{
uint32_t bits = style->i.bits[COLOR_INDEX];
bits &= COLOR_MASK;
bits >>= COLOR_SHIFT;
/* 1bit: t : type */
- *color = style->i.color;
+ return (bits & 0x1);
+}
+static inline uint8_t get_color(const css_computed_style *style, css_color
+ *color)
+{
+ uint32_t bits = style->i.bits[COLOR_INDEX];
+ bits &= COLOR_MASK;
+ bits >>= COLOR_SHIFT;
+
+ /* 1bit: t : type */
+ *color = style->i.color;
return (bits & 0x1);
}
@@ -627,6 +908,15 @@ static inline uint8_t get_color(const css_computed_style *style,
css_color
#define COLUMN_COUNT_INDEX 11
#define COLUMN_COUNT_SHIFT 14
#define COLUMN_COUNT_MASK 0xc000
+static inline uint8_t get_column_count_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[COLUMN_COUNT_INDEX];
+ bits &= COLUMN_COUNT_MASK;
+ bits >>= COLUMN_COUNT_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_column_count(const css_computed_style *style, int32_t
*integer)
{
@@ -646,6 +936,15 @@ static inline uint8_t get_column_count(const css_computed_style
*style, int32_t
#define COLUMN_FILL_INDEX 11
#define COLUMN_FILL_SHIFT 16
#define COLUMN_FILL_MASK 0x30000
+static inline uint8_t get_column_fill_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[COLUMN_FILL_INDEX];
+ bits &= COLUMN_FILL_MASK;
+ bits >>= COLUMN_FILL_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_column_fill(const css_computed_style *style)
{
uint32_t bits = style->i.bits[COLUMN_FILL_INDEX];
@@ -663,6 +962,15 @@ static inline uint8_t get_column_fill(const css_computed_style
*style)
#define COLUMN_GAP_INDEX 3
#define COLUMN_GAP_SHIFT 18
#define COLUMN_GAP_MASK 0x1fc0000
+static inline uint8_t get_column_gap_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[COLUMN_GAP_INDEX];
+ bits &= COLUMN_GAP_MASK;
+ bits >>= COLUMN_GAP_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_column_gap(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -685,6 +993,16 @@ static inline uint8_t get_column_gap(const css_computed_style *style,
css_fixed
#define COLUMN_RULE_COLOR_INDEX 11
#define COLUMN_RULE_COLOR_SHIFT 18
#define COLUMN_RULE_COLOR_MASK 0xc0000
+static inline uint8_t get_column_rule_color_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[COLUMN_RULE_COLOR_INDEX];
+ bits &= COLUMN_RULE_COLOR_MASK;
+ bits >>= COLUMN_RULE_COLOR_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_column_rule_color(const css_computed_style *style,
css_color *color)
{
@@ -704,6 +1022,16 @@ static inline uint8_t get_column_rule_color(const css_computed_style
*style,
#define COLUMN_RULE_STYLE_INDEX 7
#define COLUMN_RULE_STYLE_SHIFT 0
#define COLUMN_RULE_STYLE_MASK 0xf
+static inline uint8_t get_column_rule_style_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[COLUMN_RULE_STYLE_INDEX];
+ bits &= COLUMN_RULE_STYLE_MASK;
+ bits >>= COLUMN_RULE_STYLE_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_column_rule_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[COLUMN_RULE_STYLE_INDEX];
@@ -721,6 +1049,16 @@ static inline uint8_t get_column_rule_style(const css_computed_style
*style)
#define COLUMN_RULE_WIDTH_INDEX 1
#define COLUMN_RULE_WIDTH_SHIFT 7
#define COLUMN_RULE_WIDTH_MASK 0x7f80
+static inline uint8_t get_column_rule_width_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[COLUMN_RULE_WIDTH_INDEX];
+ bits &= COLUMN_RULE_WIDTH_MASK;
+ bits >>= COLUMN_RULE_WIDTH_SHIFT;
+
+ /* 8bits: uuuuuttt : unit | type */
+ return (bits & 0x7);
+}
static inline uint8_t get_column_rule_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -743,6 +1081,15 @@ static inline uint8_t get_column_rule_width(const css_computed_style
*style,
#define COLUMN_SPAN_INDEX 11
#define COLUMN_SPAN_SHIFT 20
#define COLUMN_SPAN_MASK 0x300000
+static inline uint8_t get_column_span_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[COLUMN_SPAN_INDEX];
+ bits &= COLUMN_SPAN_MASK;
+ bits >>= COLUMN_SPAN_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_column_span(const css_computed_style *style)
{
uint32_t bits = style->i.bits[COLUMN_SPAN_INDEX];
@@ -760,6 +1107,15 @@ static inline uint8_t get_column_span(const css_computed_style
*style)
#define COLUMN_WIDTH_INDEX 3
#define COLUMN_WIDTH_SHIFT 25
#define COLUMN_WIDTH_MASK 0xfe000000
+static inline uint8_t get_column_width_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[COLUMN_WIDTH_INDEX];
+ bits &= COLUMN_WIDTH_MASK;
+ bits >>= COLUMN_WIDTH_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_column_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -782,6 +1138,15 @@ static inline uint8_t get_column_width(const css_computed_style
*style,
#define CONTENT_INDEX 11
#define CONTENT_SHIFT 22
#define CONTENT_MASK 0xc00000
+static inline uint8_t get_content_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[CONTENT_INDEX];
+ bits &= CONTENT_MASK;
+ bits >>= CONTENT_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_content(const css_computed_style *style, const
css_computed_content_item **content_item)
{
@@ -803,6 +1168,16 @@ static inline uint8_t get_content(const css_computed_style *style,
const
#define COUNTER_INCREMENT_INDEX 14
#define COUNTER_INCREMENT_SHIFT 20
#define COUNTER_INCREMENT_MASK 0x100000
+static inline uint8_t get_counter_increment_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[COUNTER_INCREMENT_INDEX];
+ bits &= COUNTER_INCREMENT_MASK;
+ bits >>= COUNTER_INCREMENT_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_counter_increment(const css_computed_style *style,
const css_computed_counter **counter_arr)
{
@@ -822,6 +1197,15 @@ static inline uint8_t get_counter_increment(const css_computed_style
*style,
#define COUNTER_RESET_INDEX 14
#define COUNTER_RESET_SHIFT 21
#define COUNTER_RESET_MASK 0x200000
+static inline uint8_t get_counter_reset_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[COUNTER_RESET_INDEX];
+ bits &= COUNTER_RESET_MASK;
+ bits >>= COUNTER_RESET_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_counter_reset(const css_computed_style *style, const
css_computed_counter **counter_arr)
{
@@ -841,6 +1225,15 @@ static inline uint8_t get_counter_reset(const css_computed_style
*style, const
#define CURSOR_INDEX 9
#define CURSOR_SHIFT 27
#define CURSOR_MASK 0xf8000000
+static inline uint8_t get_cursor_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[CURSOR_INDEX];
+ bits &= CURSOR_MASK;
+ bits >>= CURSOR_SHIFT;
+
+ /* 5bits: ttttt : type */
+ return (bits & 0x1f);
+}
static inline uint8_t get_cursor(const css_computed_style *style, lwc_string
***string_arr)
{
@@ -860,6 +1253,15 @@ static inline uint8_t get_cursor(const css_computed_style *style,
lwc_string
#define DIRECTION_INDEX 11
#define DIRECTION_SHIFT 24
#define DIRECTION_MASK 0x3000000
+static inline uint8_t get_direction_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[DIRECTION_INDEX];
+ bits &= DIRECTION_MASK;
+ bits >>= DIRECTION_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_direction(const css_computed_style *style)
{
uint32_t bits = style->i.bits[DIRECTION_INDEX];
@@ -877,6 +1279,15 @@ static inline uint8_t get_direction(const css_computed_style
*style)
#define DISPLAY_INDEX 8
#define DISPLAY_SHIFT 3
#define DISPLAY_MASK 0xf8
+static inline uint8_t get_display_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[DISPLAY_INDEX];
+ bits &= DISPLAY_MASK;
+ bits >>= DISPLAY_SHIFT;
+
+ /* 5bits: ttttt : type */
+ return (bits & 0x1f);
+}
static inline uint8_t get_display(const css_computed_style *style)
{
uint32_t bits = style->i.bits[DISPLAY_INDEX];
@@ -894,6 +1305,15 @@ static inline uint8_t get_display(const css_computed_style *style)
#define EMPTY_CELLS_INDEX 11
#define EMPTY_CELLS_SHIFT 26
#define EMPTY_CELLS_MASK 0xc000000
+static inline uint8_t get_empty_cells_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[EMPTY_CELLS_INDEX];
+ bits &= EMPTY_CELLS_MASK;
+ bits >>= EMPTY_CELLS_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_empty_cells(const css_computed_style *style)
{
uint32_t bits = style->i.bits[EMPTY_CELLS_INDEX];
@@ -911,6 +1331,15 @@ static inline uint8_t get_empty_cells(const css_computed_style
*style)
#define FLEX_BASIS_INDEX 7
#define FLEX_BASIS_SHIFT 4
#define FLEX_BASIS_MASK 0x7f0
+static inline uint8_t get_flex_basis_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FLEX_BASIS_INDEX];
+ bits &= FLEX_BASIS_MASK;
+ bits >>= FLEX_BASIS_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_flex_basis(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -933,6 +1362,15 @@ static inline uint8_t get_flex_basis(const css_computed_style
*style, css_fixed
#define FLEX_DIRECTION_INDEX 13
#define FLEX_DIRECTION_SHIFT 4
#define FLEX_DIRECTION_MASK 0x70
+static inline uint8_t get_flex_direction_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FLEX_DIRECTION_INDEX];
+ bits &= FLEX_DIRECTION_MASK;
+ bits >>= FLEX_DIRECTION_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_flex_direction(const css_computed_style *style)
{
uint32_t bits = style->i.bits[FLEX_DIRECTION_INDEX];
@@ -950,6 +1388,15 @@ static inline uint8_t get_flex_direction(const css_computed_style
*style)
#define FLEX_GROW_INDEX 14
#define FLEX_GROW_SHIFT 22
#define FLEX_GROW_MASK 0x400000
+static inline uint8_t get_flex_grow_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FLEX_GROW_INDEX];
+ bits &= FLEX_GROW_MASK;
+ bits >>= FLEX_GROW_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_flex_grow(const css_computed_style *style, css_fixed
*fixed)
{
@@ -971,6 +1418,15 @@ static inline uint8_t get_flex_grow(const css_computed_style *style,
css_fixed
#define FLEX_SHRINK_INDEX 14
#define FLEX_SHRINK_SHIFT 23
#define FLEX_SHRINK_MASK 0x800000
+static inline uint8_t get_flex_shrink_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FLEX_SHRINK_INDEX];
+ bits &= FLEX_SHRINK_MASK;
+ bits >>= FLEX_SHRINK_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_flex_shrink(const css_computed_style *style,
css_fixed *fixed)
{
@@ -992,6 +1448,15 @@ static inline uint8_t get_flex_shrink(const css_computed_style
*style,
#define FLEX_WRAP_INDEX 11
#define FLEX_WRAP_SHIFT 28
#define FLEX_WRAP_MASK 0x30000000
+static inline uint8_t get_flex_wrap_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FLEX_WRAP_INDEX];
+ bits &= FLEX_WRAP_MASK;
+ bits >>= FLEX_WRAP_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_flex_wrap(const css_computed_style *style)
{
uint32_t bits = style->i.bits[FLEX_WRAP_INDEX];
@@ -1009,6 +1474,15 @@ static inline uint8_t get_flex_wrap(const css_computed_style
*style)
#define FLOAT_INDEX 11
#define FLOAT_SHIFT 30
#define FLOAT_MASK 0xc0000000
+static inline uint8_t get_float_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FLOAT_INDEX];
+ bits &= FLOAT_MASK;
+ bits >>= FLOAT_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_float(const css_computed_style *style)
{
uint32_t bits = style->i.bits[FLOAT_INDEX];
@@ -1026,6 +1500,15 @@ static inline uint8_t get_float(const css_computed_style *style)
#define FONT_FAMILY_INDEX 13
#define FONT_FAMILY_SHIFT 7
#define FONT_FAMILY_MASK 0x380
+static inline uint8_t get_font_family_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FONT_FAMILY_INDEX];
+ bits &= FONT_FAMILY_MASK;
+ bits >>= FONT_FAMILY_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_font_family(const css_computed_style *style,
lwc_string ***string_arr)
{
@@ -1045,6 +1528,15 @@ static inline uint8_t get_font_family(const css_computed_style
*style,
#define FONT_SIZE_INDEX 1
#define FONT_SIZE_SHIFT 23
#define FONT_SIZE_MASK 0xff800000
+static inline uint8_t get_font_size_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FONT_SIZE_INDEX];
+ bits &= FONT_SIZE_MASK;
+ bits >>= FONT_SIZE_SHIFT;
+
+ /* 9bits: uuuuutttt : unit | type */
+ return (bits & 0xf);
+}
static inline uint8_t get_font_size(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -1067,6 +1559,15 @@ static inline uint8_t get_font_size(const css_computed_style
*style, css_fixed
#define FONT_STYLE_INDEX 10
#define FONT_STYLE_SHIFT 0
#define FONT_STYLE_MASK 0x3
+static inline uint8_t get_font_style_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FONT_STYLE_INDEX];
+ bits &= FONT_STYLE_MASK;
+ bits >>= FONT_STYLE_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_font_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[FONT_STYLE_INDEX];
@@ -1084,6 +1585,15 @@ static inline uint8_t get_font_style(const css_computed_style
*style)
#define FONT_VARIANT_INDEX 10
#define FONT_VARIANT_SHIFT 2
#define FONT_VARIANT_MASK 0xc
+static inline uint8_t get_font_variant_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FONT_VARIANT_INDEX];
+ bits &= FONT_VARIANT_MASK;
+ bits >>= FONT_VARIANT_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_font_variant(const css_computed_style *style)
{
uint32_t bits = style->i.bits[FONT_VARIANT_INDEX];
@@ -1101,6 +1611,15 @@ static inline uint8_t get_font_variant(const css_computed_style
*style)
#define FONT_WEIGHT_INDEX 6
#define FONT_WEIGHT_SHIFT 0
#define FONT_WEIGHT_MASK 0xf
+static inline uint8_t get_font_weight_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[FONT_WEIGHT_INDEX];
+ bits &= FONT_WEIGHT_MASK;
+ bits >>= FONT_WEIGHT_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_font_weight(const css_computed_style *style)
{
uint32_t bits = style->i.bits[FONT_WEIGHT_INDEX];
@@ -1118,6 +1637,15 @@ static inline uint8_t get_font_weight(const css_computed_style
*style)
#define HEIGHT_INDEX 7
#define HEIGHT_SHIFT 11
#define HEIGHT_MASK 0x3f800
+static inline uint8_t get_height_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[HEIGHT_INDEX];
+ bits &= HEIGHT_MASK;
+ bits >>= HEIGHT_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_height(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -1140,6 +1668,15 @@ static inline uint8_t get_height(const css_computed_style *style,
css_fixed
#define JUSTIFY_CONTENT_INDEX 13
#define JUSTIFY_CONTENT_SHIFT 10
#define JUSTIFY_CONTENT_MASK 0x1c00
+static inline uint8_t get_justify_content_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[JUSTIFY_CONTENT_INDEX];
+ bits &= JUSTIFY_CONTENT_MASK;
+ bits >>= JUSTIFY_CONTENT_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_justify_content(const css_computed_style *style)
{
uint32_t bits = style->i.bits[JUSTIFY_CONTENT_INDEX];
@@ -1157,39 +1694,46 @@ static inline uint8_t get_justify_content(const css_computed_style
*style)
#define LEFT_INDEX 7
#define LEFT_SHIFT 18
#define LEFT_MASK 0x1fc0000
-static inline uint8_t get_left(
- const css_computed_style *style,
- css_fixed *length, css_unit *unit)
+static inline uint8_t get_left_bits(const css_computed_style *style)
{
uint32_t bits = style->i.bits[LEFT_INDEX];
bits &= LEFT_MASK;
bits >>= LEFT_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- if ((bits & 0x3) == CSS_LEFT_SET) {
- *length = style->i.left;
- *unit = bits >> 2;
- }
-
+
+ /* 7bits: uuuuutt : unit | type */
return (bits & 0x3);
}
-static inline uint8_t get_left_bits(
- const css_computed_style *style)
+static inline uint8_t get_left(const css_computed_style *style, css_fixed
+ *length, css_unit *unit)
{
uint32_t bits = style->i.bits[LEFT_INDEX];
bits &= LEFT_MASK;
bits >>= LEFT_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- return bits;
-}
-#undef LEFT_INDEX
-#undef LEFT_SHIFT
-#undef LEFT_MASK
-
-#define LETTER_SPACING_INDEX 7
-#define LETTER_SPACING_SHIFT 25
+
+ /* 7bits: uuuuutt : unit | type */
+ if ((bits & 0x3) == CSS_LEFT_SET) {
+ *length = style->i.left;
+ *unit = bits >> 2;
+ }
+
+ return (bits & 0x3);
+}
+#undef LEFT_INDEX
+#undef LEFT_SHIFT
+#undef LEFT_MASK
+
+#define LETTER_SPACING_INDEX 7
+#define LETTER_SPACING_SHIFT 25
#define LETTER_SPACING_MASK 0xfe000000
+static inline uint8_t get_letter_spacing_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[LETTER_SPACING_INDEX];
+ bits &= LETTER_SPACING_MASK;
+ bits >>= LETTER_SPACING_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_letter_spacing(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1212,6 +1756,15 @@ static inline uint8_t get_letter_spacing(const css_computed_style
*style,
#define LINE_HEIGHT_INDEX 6
#define LINE_HEIGHT_SHIFT 4
#define LINE_HEIGHT_MASK 0x7f0
+static inline uint8_t get_line_height_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[LINE_HEIGHT_INDEX];
+ bits &= LINE_HEIGHT_MASK;
+ bits >>= LINE_HEIGHT_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_line_height(
const css_computed_style *style,
css_fixed *length, css_unit *unit)
@@ -1239,6 +1792,15 @@ static inline uint8_t get_line_height(
#define LIST_STYLE_IMAGE_INDEX 14
#define LIST_STYLE_IMAGE_SHIFT 24
#define LIST_STYLE_IMAGE_MASK 0x1000000
+static inline uint8_t get_list_style_image_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[LIST_STYLE_IMAGE_INDEX];
+ bits &= LIST_STYLE_IMAGE_MASK;
+ bits >>= LIST_STYLE_IMAGE_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_list_style_image(const css_computed_style *style,
lwc_string **string)
{
@@ -1258,6 +1820,16 @@ static inline uint8_t get_list_style_image(const css_computed_style
*style,
#define LIST_STYLE_POSITION_INDEX 10
#define LIST_STYLE_POSITION_SHIFT 4
#define LIST_STYLE_POSITION_MASK 0x30
+static inline uint8_t get_list_style_position_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[LIST_STYLE_POSITION_INDEX];
+ bits &= LIST_STYLE_POSITION_MASK;
+ bits >>= LIST_STYLE_POSITION_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_list_style_position(const css_computed_style *style)
{
uint32_t bits = style->i.bits[LIST_STYLE_POSITION_INDEX];
@@ -1275,6 +1847,15 @@ static inline uint8_t get_list_style_position(const
css_computed_style *style)
#define LIST_STYLE_TYPE_INDEX 8
#define LIST_STYLE_TYPE_SHIFT 8
#define LIST_STYLE_TYPE_MASK 0x3f00
+static inline uint8_t get_list_style_type_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[LIST_STYLE_TYPE_INDEX];
+ bits &= LIST_STYLE_TYPE_MASK;
+ bits >>= LIST_STYLE_TYPE_SHIFT;
+
+ /* 6bits: tttttt : type */
+ return (bits & 0x3f);
+}
static inline uint8_t get_list_style_type(const css_computed_style *style)
{
uint32_t bits = style->i.bits[LIST_STYLE_TYPE_INDEX];
@@ -1292,6 +1873,15 @@ static inline uint8_t get_list_style_type(const css_computed_style
*style)
#define MARGIN_BOTTOM_INDEX 6
#define MARGIN_BOTTOM_SHIFT 11
#define MARGIN_BOTTOM_MASK 0x3f800
+static inline uint8_t get_margin_bottom_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[MARGIN_BOTTOM_INDEX];
+ bits &= MARGIN_BOTTOM_MASK;
+ bits >>= MARGIN_BOTTOM_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_margin_bottom(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1314,6 +1904,15 @@ static inline uint8_t get_margin_bottom(const css_computed_style
*style,
#define MARGIN_LEFT_INDEX 6
#define MARGIN_LEFT_SHIFT 18
#define MARGIN_LEFT_MASK 0x1fc0000
+static inline uint8_t get_margin_left_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[MARGIN_LEFT_INDEX];
+ bits &= MARGIN_LEFT_MASK;
+ bits >>= MARGIN_LEFT_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_margin_left(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1336,6 +1935,15 @@ static inline uint8_t get_margin_left(const css_computed_style
*style,
#define MARGIN_RIGHT_INDEX 6
#define MARGIN_RIGHT_SHIFT 25
#define MARGIN_RIGHT_MASK 0xfe000000
+static inline uint8_t get_margin_right_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[MARGIN_RIGHT_INDEX];
+ bits &= MARGIN_RIGHT_MASK;
+ bits >>= MARGIN_RIGHT_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_margin_right(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1358,6 +1966,15 @@ static inline uint8_t get_margin_right(const css_computed_style
*style,
#define MARGIN_TOP_INDEX 5
#define MARGIN_TOP_SHIFT 4
#define MARGIN_TOP_MASK 0x7f0
+static inline uint8_t get_margin_top_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[MARGIN_TOP_INDEX];
+ bits &= MARGIN_TOP_MASK;
+ bits >>= MARGIN_TOP_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_margin_top(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -1380,6 +1997,15 @@ static inline uint8_t get_margin_top(const css_computed_style
*style, css_fixed
#define MAX_HEIGHT_INDEX 5
#define MAX_HEIGHT_SHIFT 11
#define MAX_HEIGHT_MASK 0x3f800
+static inline uint8_t get_max_height_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[MAX_HEIGHT_INDEX];
+ bits &= MAX_HEIGHT_MASK;
+ bits >>= MAX_HEIGHT_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_max_height(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -1402,6 +2028,15 @@ static inline uint8_t get_max_height(const css_computed_style
*style, css_fixed
#define MAX_WIDTH_INDEX 5
#define MAX_WIDTH_SHIFT 18
#define MAX_WIDTH_MASK 0x1fc0000
+static inline uint8_t get_max_width_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[MAX_WIDTH_INDEX];
+ bits &= MAX_WIDTH_MASK;
+ bits >>= MAX_WIDTH_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_max_width(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -1424,6 +2059,15 @@ static inline uint8_t get_max_width(const css_computed_style
*style, css_fixed
#define MIN_HEIGHT_INDEX 5
#define MIN_HEIGHT_SHIFT 25
#define MIN_HEIGHT_MASK 0xfe000000
+static inline uint8_t get_min_height_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[MIN_HEIGHT_INDEX];
+ bits &= MIN_HEIGHT_MASK;
+ bits >>= MIN_HEIGHT_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_min_height(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -1446,6 +2090,15 @@ static inline uint8_t get_min_height(const css_computed_style
*style, css_fixed
#define MIN_WIDTH_INDEX 4
#define MIN_WIDTH_SHIFT 4
#define MIN_WIDTH_MASK 0x7f0
+static inline uint8_t get_min_width_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[MIN_WIDTH_INDEX];
+ bits &= MIN_WIDTH_MASK;
+ bits >>= MIN_WIDTH_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_min_width(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -1468,6 +2121,15 @@ static inline uint8_t get_min_width(const css_computed_style
*style, css_fixed
#define OPACITY_INDEX 14
#define OPACITY_SHIFT 25
#define OPACITY_MASK 0x2000000
+static inline uint8_t get_opacity_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[OPACITY_INDEX];
+ bits &= OPACITY_MASK;
+ bits >>= OPACITY_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_opacity(const css_computed_style *style, css_fixed
*fixed)
{
@@ -1489,6 +2151,15 @@ static inline uint8_t get_opacity(const css_computed_style *style,
css_fixed
#define ORDER_INDEX 14
#define ORDER_SHIFT 26
#define ORDER_MASK 0x4000000
+static inline uint8_t get_order_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[ORDER_INDEX];
+ bits &= ORDER_MASK;
+ bits >>= ORDER_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_order(const css_computed_style *style, int32_t
*integer)
{
@@ -1510,6 +2181,15 @@ static inline uint8_t get_order(const css_computed_style *style,
int32_t
#define ORPHANS_INDEX 14
#define ORPHANS_SHIFT 27
#define ORPHANS_MASK 0x8000000
+static inline uint8_t get_orphans_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[ORPHANS_INDEX];
+ bits &= ORPHANS_MASK;
+ bits >>= ORPHANS_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_orphans(const css_computed_style *style, int32_t
*integer)
{
@@ -1529,6 +2209,15 @@ static inline uint8_t get_orphans(const css_computed_style *style,
int32_t
#define OUTLINE_COLOR_INDEX 10
#define OUTLINE_COLOR_SHIFT 6
#define OUTLINE_COLOR_MASK 0xc0
+static inline uint8_t get_outline_color_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[OUTLINE_COLOR_INDEX];
+ bits &= OUTLINE_COLOR_MASK;
+ bits >>= OUTLINE_COLOR_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_outline_color(const css_computed_style *style,
css_color *color)
{
@@ -1550,6 +2239,15 @@ static inline uint8_t get_outline_color(const css_computed_style
*style,
#define OUTLINE_STYLE_INDEX 5
#define OUTLINE_STYLE_SHIFT 0
#define OUTLINE_STYLE_MASK 0xf
+static inline uint8_t get_outline_style_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[OUTLINE_STYLE_INDEX];
+ bits &= OUTLINE_STYLE_MASK;
+ bits >>= OUTLINE_STYLE_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_outline_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[OUTLINE_STYLE_INDEX];
@@ -1567,6 +2265,15 @@ static inline uint8_t get_outline_style(const css_computed_style
*style)
#define OUTLINE_WIDTH_INDEX 1
#define OUTLINE_WIDTH_SHIFT 15
#define OUTLINE_WIDTH_MASK 0x7f8000
+static inline uint8_t get_outline_width_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[OUTLINE_WIDTH_INDEX];
+ bits &= OUTLINE_WIDTH_MASK;
+ bits >>= OUTLINE_WIDTH_SHIFT;
+
+ /* 8bits: uuuuuttt : unit | type */
+ return (bits & 0x7);
+}
static inline uint8_t get_outline_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1589,6 +2296,15 @@ static inline uint8_t get_outline_width(const css_computed_style
*style,
#define OVERFLOW_X_INDEX 13
#define OVERFLOW_X_SHIFT 13
#define OVERFLOW_X_MASK 0xe000
+static inline uint8_t get_overflow_x_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[OVERFLOW_X_INDEX];
+ bits &= OVERFLOW_X_MASK;
+ bits >>= OVERFLOW_X_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_overflow_x(const css_computed_style *style)
{
uint32_t bits = style->i.bits[OVERFLOW_X_INDEX];
@@ -1606,6 +2322,15 @@ static inline uint8_t get_overflow_x(const css_computed_style
*style)
#define OVERFLOW_Y_INDEX 13
#define OVERFLOW_Y_SHIFT 16
#define OVERFLOW_Y_MASK 0x70000
+static inline uint8_t get_overflow_y_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[OVERFLOW_Y_INDEX];
+ bits &= OVERFLOW_Y_MASK;
+ bits >>= OVERFLOW_Y_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_overflow_y(const css_computed_style *style)
{
uint32_t bits = style->i.bits[OVERFLOW_Y_INDEX];
@@ -1623,6 +2348,15 @@ static inline uint8_t get_overflow_y(const css_computed_style
*style)
#define PADDING_BOTTOM_INDEX 8
#define PADDING_BOTTOM_SHIFT 14
#define PADDING_BOTTOM_MASK 0xfc000
+static inline uint8_t get_padding_bottom_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[PADDING_BOTTOM_INDEX];
+ bits &= PADDING_BOTTOM_MASK;
+ bits >>= PADDING_BOTTOM_SHIFT;
+
+ /* 6bits: uuuuut : unit | type */
+ return (bits & 0x1);
+}
static inline uint8_t get_padding_bottom(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1645,6 +2379,15 @@ static inline uint8_t get_padding_bottom(const css_computed_style
*style,
#define PADDING_LEFT_INDEX 8
#define PADDING_LEFT_SHIFT 20
#define PADDING_LEFT_MASK 0x3f00000
+static inline uint8_t get_padding_left_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[PADDING_LEFT_INDEX];
+ bits &= PADDING_LEFT_MASK;
+ bits >>= PADDING_LEFT_SHIFT;
+
+ /* 6bits: uuuuut : unit | type */
+ return (bits & 0x1);
+}
static inline uint8_t get_padding_left(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1667,6 +2410,15 @@ static inline uint8_t get_padding_left(const css_computed_style
*style,
#define PADDING_RIGHT_INDEX 8
#define PADDING_RIGHT_SHIFT 26
#define PADDING_RIGHT_MASK 0xfc000000
+static inline uint8_t get_padding_right_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[PADDING_RIGHT_INDEX];
+ bits &= PADDING_RIGHT_MASK;
+ bits >>= PADDING_RIGHT_SHIFT;
+
+ /* 6bits: uuuuut : unit | type */
+ return (bits & 0x1);
+}
static inline uint8_t get_padding_right(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1689,6 +2441,15 @@ static inline uint8_t get_padding_right(const css_computed_style
*style,
#define PADDING_TOP_INDEX 3
#define PADDING_TOP_SHIFT 5
#define PADDING_TOP_MASK 0x7e0
+static inline uint8_t get_padding_top_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[PADDING_TOP_INDEX];
+ bits &= PADDING_TOP_MASK;
+ bits >>= PADDING_TOP_SHIFT;
+
+ /* 6bits: uuuuut : unit | type */
+ return (bits & 0x1);
+}
static inline uint8_t get_padding_top(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1711,6 +2472,15 @@ static inline uint8_t get_padding_top(const css_computed_style
*style,
#define PAGE_BREAK_AFTER_INDEX 13
#define PAGE_BREAK_AFTER_SHIFT 19
#define PAGE_BREAK_AFTER_MASK 0x380000
+static inline uint8_t get_page_break_after_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[PAGE_BREAK_AFTER_INDEX];
+ bits &= PAGE_BREAK_AFTER_MASK;
+ bits >>= PAGE_BREAK_AFTER_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_page_break_after(const css_computed_style *style)
{
uint32_t bits = style->i.bits[PAGE_BREAK_AFTER_INDEX];
@@ -1728,6 +2498,16 @@ static inline uint8_t get_page_break_after(const css_computed_style
*style)
#define PAGE_BREAK_BEFORE_INDEX 13
#define PAGE_BREAK_BEFORE_SHIFT 22
#define PAGE_BREAK_BEFORE_MASK 0x1c00000
+static inline uint8_t get_page_break_before_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[PAGE_BREAK_BEFORE_INDEX];
+ bits &= PAGE_BREAK_BEFORE_MASK;
+ bits >>= PAGE_BREAK_BEFORE_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_page_break_before(const css_computed_style *style)
{
uint32_t bits = style->i.bits[PAGE_BREAK_BEFORE_INDEX];
@@ -1745,6 +2525,16 @@ static inline uint8_t get_page_break_before(const
css_computed_style *style)
#define PAGE_BREAK_INSIDE_INDEX 10
#define PAGE_BREAK_INSIDE_SHIFT 8
#define PAGE_BREAK_INSIDE_MASK 0x300
+static inline uint8_t get_page_break_inside_bits(const css_computed_style
+ *style)
+{
+ uint32_t bits = style->i.bits[PAGE_BREAK_INSIDE_INDEX];
+ bits &= PAGE_BREAK_INSIDE_MASK;
+ bits >>= PAGE_BREAK_INSIDE_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_page_break_inside(const css_computed_style *style)
{
uint32_t bits = style->i.bits[PAGE_BREAK_INSIDE_INDEX];
@@ -1762,6 +2552,15 @@ static inline uint8_t get_page_break_inside(const
css_computed_style *style)
#define POSITION_INDEX 13
#define POSITION_SHIFT 25
#define POSITION_MASK 0xe000000
+static inline uint8_t get_position_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[POSITION_INDEX];
+ bits &= POSITION_MASK;
+ bits >>= POSITION_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_position(const css_computed_style *style)
{
uint32_t bits = style->i.bits[POSITION_INDEX];
@@ -1779,6 +2578,15 @@ static inline uint8_t get_position(const css_computed_style
*style)
#define QUOTES_INDEX 13
#define QUOTES_SHIFT 0
#define QUOTES_MASK 0x1
+static inline uint8_t get_quotes_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[QUOTES_INDEX];
+ bits &= QUOTES_MASK;
+ bits >>= QUOTES_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_quotes(const css_computed_style *style, lwc_string
***string_arr)
{
@@ -1798,31 +2606,29 @@ static inline uint8_t get_quotes(const css_computed_style *style,
lwc_string
#define RIGHT_INDEX 4
#define RIGHT_SHIFT 11
#define RIGHT_MASK 0x3f800
-static inline uint8_t get_right(
- const css_computed_style *style,
- css_fixed *length, css_unit *unit)
+static inline uint8_t get_right_bits(const css_computed_style *style)
{
uint32_t bits = style->i.bits[RIGHT_INDEX];
bits &= RIGHT_MASK;
bits >>= RIGHT_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- if ((bits & 0x3) == CSS_RIGHT_SET) {
- *length = style->i.right;
- *unit = bits >> 2;
- }
-
+
+ /* 7bits: uuuuutt : unit | type */
return (bits & 0x3);
}
-static inline uint8_t get_right_bits(
- const css_computed_style *style)
+static inline uint8_t get_right(const css_computed_style *style, css_fixed
+ *length, css_unit *unit)
{
uint32_t bits = style->i.bits[RIGHT_INDEX];
bits &= RIGHT_MASK;
bits >>= RIGHT_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- return bits;
+
+ /* 7bits: uuuuutt : unit | type */
+ if ((bits & 0x3) == CSS_RIGHT_SET) {
+ *length = style->i.right;
+ *unit = bits >> 2;
+ }
+
+ return (bits & 0x3);
}
#undef RIGHT_INDEX
#undef RIGHT_SHIFT
@@ -1831,6 +2637,15 @@ static inline uint8_t get_right_bits(
#define TABLE_LAYOUT_INDEX 10
#define TABLE_LAYOUT_SHIFT 10
#define TABLE_LAYOUT_MASK 0xc00
+static inline uint8_t get_table_layout_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[TABLE_LAYOUT_INDEX];
+ bits &= TABLE_LAYOUT_MASK;
+ bits >>= TABLE_LAYOUT_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_table_layout(const css_computed_style *style)
{
uint32_t bits = style->i.bits[TABLE_LAYOUT_INDEX];
@@ -1848,6 +2663,15 @@ static inline uint8_t get_table_layout(const css_computed_style
*style)
#define TEXT_ALIGN_INDEX 4
#define TEXT_ALIGN_SHIFT 0
#define TEXT_ALIGN_MASK 0xf
+static inline uint8_t get_text_align_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[TEXT_ALIGN_INDEX];
+ bits &= TEXT_ALIGN_MASK;
+ bits >>= TEXT_ALIGN_SHIFT;
+
+ /* 4bits: tttt : type */
+ return (bits & 0xf);
+}
static inline uint8_t get_text_align(const css_computed_style *style)
{
uint32_t bits = style->i.bits[TEXT_ALIGN_INDEX];
@@ -1865,6 +2689,15 @@ static inline uint8_t get_text_align(const css_computed_style
*style)
#define TEXT_DECORATION_INDEX 3
#define TEXT_DECORATION_SHIFT 0
#define TEXT_DECORATION_MASK 0x1f
+static inline uint8_t get_text_decoration_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[TEXT_DECORATION_INDEX];
+ bits &= TEXT_DECORATION_MASK;
+ bits >>= TEXT_DECORATION_SHIFT;
+
+ /* 5bits: ttttt : type */
+ return (bits & 0x1f);
+}
static inline uint8_t get_text_decoration(const css_computed_style *style)
{
uint32_t bits = style->i.bits[TEXT_DECORATION_INDEX];
@@ -1882,6 +2715,15 @@ static inline uint8_t get_text_decoration(const css_computed_style
*style)
#define TEXT_INDENT_INDEX 2
#define TEXT_INDENT_SHIFT 0
#define TEXT_INDENT_MASK 0x3f
+static inline uint8_t get_text_indent_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[TEXT_INDENT_INDEX];
+ bits &= TEXT_INDENT_MASK;
+ bits >>= TEXT_INDENT_SHIFT;
+
+ /* 6bits: uuuuut : unit | type */
+ return (bits & 0x1);
+}
static inline uint8_t get_text_indent(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1904,6 +2746,15 @@ static inline uint8_t get_text_indent(const css_computed_style
*style,
#define TEXT_TRANSFORM_INDEX 9
#define TEXT_TRANSFORM_SHIFT 0
#define TEXT_TRANSFORM_MASK 0x7
+static inline uint8_t get_text_transform_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[TEXT_TRANSFORM_INDEX];
+ bits &= TEXT_TRANSFORM_MASK;
+ bits >>= TEXT_TRANSFORM_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_text_transform(const css_computed_style *style)
{
uint32_t bits = style->i.bits[TEXT_TRANSFORM_INDEX];
@@ -1921,31 +2772,29 @@ static inline uint8_t get_text_transform(const css_computed_style
*style)
#define TOP_INDEX 4
#define TOP_SHIFT 18
#define TOP_MASK 0x1fc0000
-static inline uint8_t get_top(
- const css_computed_style *style,
- css_fixed *length, css_unit *unit)
+static inline uint8_t get_top_bits(const css_computed_style *style)
{
uint32_t bits = style->i.bits[TOP_INDEX];
bits &= TOP_MASK;
bits >>= TOP_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- if ((bits & 0x3) == CSS_TOP_SET) {
- *length = style->i.top;
- *unit = bits >> 2;
- }
-
+
+ /* 7bits: uuuuutt : unit | type */
return (bits & 0x3);
}
-static inline uint8_t get_top_bits(
- const css_computed_style *style)
+static inline uint8_t get_top(const css_computed_style *style, css_fixed
+ *length, css_unit *unit)
{
uint32_t bits = style->i.bits[TOP_INDEX];
bits &= TOP_MASK;
bits >>= TOP_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- return bits;
+
+ /* 7bits: uuuuutt : unit | type */
+ if ((bits & 0x3) == CSS_TOP_SET) {
+ *length = style->i.top;
+ *unit = bits >> 2;
+ }
+
+ return (bits & 0x3);
}
#undef TOP_INDEX
#undef TOP_SHIFT
@@ -1954,6 +2803,15 @@ static inline uint8_t get_top_bits(
#define UNICODE_BIDI_INDEX 10
#define UNICODE_BIDI_SHIFT 12
#define UNICODE_BIDI_MASK 0x3000
+static inline uint8_t get_unicode_bidi_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[UNICODE_BIDI_INDEX];
+ bits &= UNICODE_BIDI_MASK;
+ bits >>= UNICODE_BIDI_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_unicode_bidi(const css_computed_style *style)
{
uint32_t bits = style->i.bits[UNICODE_BIDI_INDEX];
@@ -1971,6 +2829,15 @@ static inline uint8_t get_unicode_bidi(const css_computed_style
*style)
#define VERTICAL_ALIGN_INDEX 12
#define VERTICAL_ALIGN_SHIFT 1
#define VERTICAL_ALIGN_MASK 0x3fe
+static inline uint8_t get_vertical_align_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[VERTICAL_ALIGN_INDEX];
+ bits &= VERTICAL_ALIGN_MASK;
+ bits >>= VERTICAL_ALIGN_SHIFT;
+
+ /* 9bits: uuuuutttt : unit | type */
+ return (bits & 0xf);
+}
static inline uint8_t get_vertical_align(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1993,6 +2860,15 @@ static inline uint8_t get_vertical_align(const css_computed_style
*style,
#define VISIBILITY_INDEX 10
#define VISIBILITY_SHIFT 14
#define VISIBILITY_MASK 0xc000
+static inline uint8_t get_visibility_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[VISIBILITY_INDEX];
+ bits &= VISIBILITY_MASK;
+ bits >>= VISIBILITY_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_visibility(const css_computed_style *style)
{
uint32_t bits = style->i.bits[VISIBILITY_INDEX];
@@ -2010,6 +2886,15 @@ static inline uint8_t get_visibility(const css_computed_style
*style)
#define WHITE_SPACE_INDEX 8
#define WHITE_SPACE_SHIFT 0
#define WHITE_SPACE_MASK 0x7
+static inline uint8_t get_white_space_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[WHITE_SPACE_INDEX];
+ bits &= WHITE_SPACE_MASK;
+ bits >>= WHITE_SPACE_SHIFT;
+
+ /* 3bits: ttt : type */
+ return (bits & 0x7);
+}
static inline uint8_t get_white_space(const css_computed_style *style)
{
uint32_t bits = style->i.bits[WHITE_SPACE_INDEX];
@@ -2027,6 +2912,15 @@ static inline uint8_t get_white_space(const css_computed_style
*style)
#define WIDOWS_INDEX 12
#define WIDOWS_SHIFT 0
#define WIDOWS_MASK 0x1
+static inline uint8_t get_widows_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[WIDOWS_INDEX];
+ bits &= WIDOWS_MASK;
+ bits >>= WIDOWS_SHIFT;
+
+ /* 1bit: t : type */
+ return (bits & 0x1);
+}
static inline uint8_t get_widows(const css_computed_style *style, int32_t
*integer)
{
@@ -2046,6 +2940,15 @@ static inline uint8_t get_widows(const css_computed_style *style,
int32_t
#define WIDTH_INDEX 4
#define WIDTH_SHIFT 25
#define WIDTH_MASK 0xfe000000
+static inline uint8_t get_width_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[WIDTH_INDEX];
+ bits &= WIDTH_MASK;
+ bits >>= WIDTH_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_width(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -2068,6 +2971,15 @@ static inline uint8_t get_width(const css_computed_style *style,
css_fixed
#define WORD_SPACING_INDEX 1
#define WORD_SPACING_SHIFT 0
#define WORD_SPACING_MASK 0x7f
+static inline uint8_t get_word_spacing_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[WORD_SPACING_INDEX];
+ bits &= WORD_SPACING_MASK;
+ bits >>= WORD_SPACING_SHIFT;
+
+ /* 7bits: uuuuutt : unit | type */
+ return (bits & 0x3);
+}
static inline uint8_t get_word_spacing(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -2090,6 +3002,15 @@ static inline uint8_t get_word_spacing(const css_computed_style
*style,
#define WRITING_MODE_INDEX 10
#define WRITING_MODE_SHIFT 16
#define WRITING_MODE_MASK 0x30000
+static inline uint8_t get_writing_mode_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[WRITING_MODE_INDEX];
+ bits &= WRITING_MODE_MASK;
+ bits >>= WRITING_MODE_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_writing_mode(const css_computed_style *style)
{
uint32_t bits = style->i.bits[WRITING_MODE_INDEX];
@@ -2107,6 +3028,15 @@ static inline uint8_t get_writing_mode(const css_computed_style
*style)
#define Z_INDEX_INDEX 10
#define Z_INDEX_SHIFT 18
#define Z_INDEX_MASK 0xc0000
+static inline uint8_t get_z_index_bits(const css_computed_style *style)
+{
+ uint32_t bits = style->i.bits[Z_INDEX_INDEX];
+ bits &= Z_INDEX_MASK;
+ bits >>= Z_INDEX_SHIFT;
+
+ /* 2bits: tt : type */
+ return (bits & 0x3);
+}
static inline uint8_t get_z_index(const css_computed_style *style, int32_t
*integer)
{
diff --git a/src/select/overrides.py b/src/select/overrides.py
index b4d349a..869d6ec 100644
--- a/src/select/overrides.py
+++ b/src/select/overrides.py
@@ -183,35 +183,3 @@ static inline css_error set_content(
return CSS_OK;
}'''
-
-get_side = '''\
-static inline uint8_t get_{0}(
- const css_computed_style *style,
- css_fixed *length, css_unit *unit)
-{{
- uint32_t bits = style->i.bits[{1}_INDEX];
- bits &= {1}_MASK;
- bits >>= {1}_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- if ((bits & 0x3) == CSS_{1}_SET) {{
- *length = style->i.{0};
- *unit = bits >> 2;
- }}
-
- return (bits & 0x3);
-}}
-static inline uint8_t get_{0}_bits(
- const css_computed_style *style)
-{{
- uint32_t bits = style->i.bits[{1}_INDEX];
- bits &= {1}_MASK;
- bits >>= {1}_SHIFT;
-
- /* 7bits: uuuuutt : units | type */
- return bits;
-}}'''
-overrides['get']['top'] = get_side.format('top', 'TOP')
-overrides['get']['right'] = get_side.format('right',
'RIGHT')
-overrides['get']['bottom'] = get_side.format('bottom',
'BOTTOM')
-overrides['get']['left'] = get_side.format('left',
'LEFT')
diff --git a/src/select/select_generator.py b/src/select/select_generator.py
index ece7a91..05a4511 100644
--- a/src/select/select_generator.py
+++ b/src/select/select_generator.py
@@ -707,42 +707,32 @@ class CSSGroup:
return t.to_string()
- def make_propget_h(self):
- """Output this group's property functions for the propget.h
file."""
- t = Text()
+ def print_propget(self, t, p, only_bits=False):
i_dot, grp = self.get_idot_grp()
- for p in sorted(self.props, key=(lambda x: x.name)):
- defines, undefs = p.def_undefs
-
- t.append()
- t.append(defines)
-
- if p.name in overrides['get']:
- t.append(overrides['get'][p.name], pre_formatted=True)
- t.append(undefs)
- continue
+ vals = [] if only_bits else p.get_param_values(pointer=True)
+ params = ', '.join([ 'css_computed_style *style' ]
+ + [ ' '.join(x) for x in vals ])
+ underscore_bits = '_bits' if only_bits else ''
+ t.append('static inline uint8_t get_{}{}(const {})'.format(
+ p.name, underscore_bits, params))
+ t.append('{')
+ t.indent(1)
- vals = p.get_param_values(pointer=True)
- params = ', '.join([ 'css_computed_style *style' ]
- + [ ' '.join(x) for x in vals ])
- t.append('static inline uint8_t get_{}(const {})'.format(
- p.name, params))
- t.append('{')
+ if self.name != 'style':
+ t.append('if (style{} != NULL) {{'.format(grp))
t.indent(1)
- if self.name != 'style':
- t.append('if (style{} != NULL) {{'.format(grp))
- t.indent(1)
+ t.append('uint32_t bits = style{}->{}bits[{}_INDEX];'.format(
+ grp, i_dot, p.name.upper()))
+ t.append('bits &= {}_MASK;'.format(p.name.upper()))
+ t.append('bits >>= {}_SHIFT;'.format(p.name.upper()))
+ t.append()
- t.append('uint32_t bits = style{}->{}bits[{}_INDEX];'.format(
- grp, i_dot, p.name.upper()))
- t.append('bits &= {}_MASK;'.format(p.name.upper()))
- t.append('bits >>= {}_SHIFT;'.format(p.name.upper()))
- t.append()
+ type_mask, shift_list, bits_comment = p.get_bits()
+ t.append(bits_comment)
- type_mask, shift_list, bits_comment = p.get_bits()
- t.append(bits_comment)
+ if only_bits == False:
if p.condition:
t.append('if ((bits & {}) == {}) {{'.format(
@@ -763,24 +753,42 @@ class CSSGroup:
if p.condition:
t.indent(-1)
t.append('}')
-
t.append()
- t.append('return (bits & {});'.format(type_mask))
- if self.name != 'style':
- t.indent(-1)
- t.append('}')
- t.append()
- t.append('/* Initial value */')
- for v in p.values:
- t.append('*{} = {};'.format(v.name + v.suffix, v.defaults))
- if v.bits is not None:
- t.append('*{} = {};'.format(
- v.bits['name'] + v.suffix,
v.bits['defaults']))
- t.append('return {};'.format(p.defaults))
+ t.append('return (bits & {});'.format(type_mask))
+ if self.name != 'style':
t.indent(-1)
t.append('}')
+ t.append()
+ t.append('/* Initial value */')
+ for v in p.values:
+ t.append('*{} = {};'.format(v.name + v.suffix, v.defaults))
+ if v.bits is not None:
+ t.append('*{} = {};'.format(
+ v.bits['name'] + v.suffix, v.bits['defaults']))
+ t.append('return {};'.format(p.defaults))
+
+ t.indent(-1)
+ t.append('}')
+
+ def make_propget_h(self):
+ """Output this group's property functions for the propget.h
file."""
+ t = Text()
+
+ for p in sorted(self.props, key=(lambda x: x.name)):
+ defines, undefs = p.def_undefs
+
+ t.append()
+ t.append(defines)
+
+ self.print_propget(t, p, True)
+
+ if p.name in overrides['get']:
+ t.append(overrides['get'][p.name], pre_formatted=True)
+ else:
+ self.print_propget(t, p)
+
t.append(undefs)
return t.to_string()
--
Cascading Style Sheets library