summaryrefslogtreecommitdiff
path: root/src/parse
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse')
-rw-r--r--src/parse/language.c32
1 files changed, 13 insertions, 19 deletions
diff --git a/src/parse/language.c b/src/parse/language.c
index 2bc5919..78b2045 100644
--- a/src/parse/language.c
+++ b/src/parse/language.c
@@ -74,13 +74,13 @@ static inline css_error handleDeclaration(css_language *c,
/* Selector list parsing */
static inline css_error parseClass(css_language *c,
const parserutils_vector *vector, int *ctx,
- css_selector_detail **specific);
+ css_selector_detail *specific);
static inline css_error parseAttrib(css_language *c,
const parserutils_vector *vector, int *ctx,
- css_selector_detail **specific);
+ css_selector_detail *specific);
static inline css_error parsePseudo(css_language *c,
const parserutils_vector *vector, int *ctx,
- css_selector_detail **specific);
+ css_selector_detail *specific);
static inline css_error parseSpecific(css_language *c,
const parserutils_vector *vector, int *ctx,
css_selector **parent);
@@ -528,7 +528,7 @@ css_error handleDeclaration(css_language *c, const parserutils_vector *vector)
******************************************************************************/
css_error parseClass(css_language *c, const parserutils_vector *vector,
- int *ctx, css_selector_detail **specific)
+ int *ctx, css_selector_detail *specific)
{
const css_token *token;
@@ -541,12 +541,12 @@ css_error parseClass(css_language *c, const parserutils_vector *vector,
if (token == NULL || token->type != CSS_TOKEN_IDENT)
return CSS_INVALID;
- return css_stylesheet_selector_detail_create(c->sheet,
+ return css_stylesheet_selector_detail_init(c->sheet,
CSS_SELECTOR_CLASS, token->idata, NULL, specific);
}
css_error parseAttrib(css_language *c, const parserutils_vector *vector,
- int *ctx, css_selector_detail **specific)
+ int *ctx, css_selector_detail *specific)
{
const css_token *token, *name, *value = NULL;
css_selector_type type = CSS_SELECTOR_ATTRIBUTE;
@@ -599,13 +599,13 @@ css_error parseAttrib(css_language *c, const parserutils_vector *vector,
return CSS_INVALID;
}
- return css_stylesheet_selector_detail_create(c->sheet, type,
+ return css_stylesheet_selector_detail_init(c->sheet, type,
name->idata, value != NULL ? value->idata : NULL,
specific);
}
css_error parsePseudo(css_language *c, const parserutils_vector *vector,
- int *ctx, css_selector_detail **specific)
+ int *ctx, css_selector_detail *specific)
{
const css_token *token, *name, *value = NULL;
@@ -639,7 +639,7 @@ css_error parsePseudo(css_language *c, const parserutils_vector *vector,
return CSS_INVALID;
}
- return css_stylesheet_selector_detail_create(c->sheet,
+ return css_stylesheet_selector_detail_init(c->sheet,
CSS_SELECTOR_PSEUDO, name->idata,
value != NULL ? value->idata : NULL, specific);
}
@@ -650,7 +650,7 @@ css_error parseSpecific(css_language *c,
{
css_error error;
const css_token *token;
- css_selector_detail *specific = NULL;
+ css_selector_detail specific;
/* specific -> [ HASH | class | attrib | pseudo ] */
@@ -659,7 +659,7 @@ css_error parseSpecific(css_language *c,
return CSS_INVALID;
if (token->type == CSS_TOKEN_HASH) {
- error = css_stylesheet_selector_detail_create(c->sheet,
+ error = css_stylesheet_selector_detail_init(c->sheet,
CSS_SELECTOR_ID, token->idata, NULL, &specific);
if (error != CSS_OK)
return error;
@@ -681,14 +681,8 @@ css_error parseSpecific(css_language *c,
return CSS_INVALID;
}
- error = css_stylesheet_selector_append_specific(c->sheet, parent,
- specific);
- if (error != CSS_OK) {
- css_stylesheet_selector_detail_destroy(c->sheet, specific);
- return error;
- }
-
- return CSS_OK;
+ return css_stylesheet_selector_append_specific(c->sheet, parent,
+ &specific);
}
css_error parseSelectorSpecifics(css_language *c,