Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 162711
Collapse All | Expand All

(-)libxslt/pattern.c (-11 / +18 lines)
Lines 142-148 Link Here
142
    cur = (xsltCompMatchPtr) xmlMalloc(sizeof(xsltCompMatch));
142
    cur = (xsltCompMatchPtr) xmlMalloc(sizeof(xsltCompMatch));
143
    if (cur == NULL) {
143
    if (cur == NULL) {
144
	xsltTransformError(NULL, NULL, NULL,
144
	xsltTransformError(NULL, NULL, NULL,
145
		"xsltNewCompMatch : malloc failed\n");
145
		"xsltNewCompMatch : out of memory error\n");
146
	return(NULL);
146
	return(NULL);
147
    }
147
    }
148
    memset(cur, 0, sizeof(xsltCompMatch));
148
    memset(cur, 0, sizeof(xsltCompMatch));
Lines 2066-2072 Link Here
2066
int
2066
int
2067
xsltAddTemplate(xsltStylesheetPtr style, xsltTemplatePtr cur,
2067
xsltAddTemplate(xsltStylesheetPtr style, xsltTemplatePtr cur,
2068
	        const xmlChar *mode, const xmlChar *modeURI) {
2068
	        const xmlChar *mode, const xmlChar *modeURI) {
2069
    xsltCompMatchPtr pat, list, *top = NULL, next;
2069
    xsltCompMatchPtr pat, list, next;
2070
    /*
2071
     * 'top' will point to style->xxxMatch ptr - declaring as 'void'
2072
     *  avoids gcc 'type-punned pointer' warning.
2073
     */
2074
    void **top = NULL;
2070
    const xmlChar *name = NULL;
2075
    const xmlChar *name = NULL;
2071
    float priority;              /* the priority */
2076
    float priority;              /* the priority */
2072
2077
Lines 2076-2081 Link Here
2076
    priority = cur->priority;
2081
    priority = cur->priority;
2077
    pat = xsltCompilePatternInternal(cur->match, style->doc, cur->elem,
2082
    pat = xsltCompilePatternInternal(cur->match, style->doc, cur->elem,
2078
		    style, NULL, 1);
2083
		    style, NULL, 1);
2084
    if (pat == NULL)
2085
    	return(-1);
2079
    while (pat) {
2086
    while (pat) {
2080
	next = pat->next;
2087
	next = pat->next;
2081
	pat->next = NULL;
2088
	pat->next = NULL;
Lines 2097-2120 Link Here
2097
	    if (pat->steps[0].value != NULL)
2104
	    if (pat->steps[0].value != NULL)
2098
		name = pat->steps[0].value;
2105
		name = pat->steps[0].value;
2099
	    else
2106
	    else
2100
		top = (xsltCompMatchPtr *) &(style->attrMatch);
2107
		top = &(style->attrMatch);
2101
	    break;
2108
	    break;
2102
        case XSLT_OP_CHILD:
2109
        case XSLT_OP_CHILD:
2103
        case XSLT_OP_PARENT:
2110
        case XSLT_OP_PARENT:
2104
        case XSLT_OP_ANCESTOR:
2111
        case XSLT_OP_ANCESTOR:
2105
	    top = (xsltCompMatchPtr *) &(style->elemMatch);
2112
	    top = &(style->elemMatch);
2106
	    break;
2113
	    break;
2107
        case XSLT_OP_ROOT:
2114
        case XSLT_OP_ROOT:
2108
	    top = (xsltCompMatchPtr *) &(style->rootMatch);
2115
	    top = &(style->rootMatch);
2109
	    break;
2116
	    break;
2110
        case XSLT_OP_KEY:
2117
        case XSLT_OP_KEY:
2111
	    top = (xsltCompMatchPtr *) &(style->keyMatch);
2118
	    top = &(style->keyMatch);
2112
	    break;
2119
	    break;
2113
        case XSLT_OP_ID:
2120
        case XSLT_OP_ID:
2114
	    /* TODO optimize ID !!! */
2121
	    /* TODO optimize ID !!! */
2115
        case XSLT_OP_NS:
2122
        case XSLT_OP_NS:
2116
        case XSLT_OP_ALL:
2123
        case XSLT_OP_ALL:
2117
	    top = (xsltCompMatchPtr *) &(style->elemMatch);
2124
	    top = &(style->elemMatch);
2118
	    break;
2125
	    break;
2119
        case XSLT_OP_END:
2126
        case XSLT_OP_END:
2120
	case XSLT_OP_PREDICATE:
2127
	case XSLT_OP_PREDICATE:
Lines 2130-2149 Link Here
2130
	    if (pat->steps[0].value != NULL)
2137
	    if (pat->steps[0].value != NULL)
2131
		name = pat->steps[0].value;
2138
		name = pat->steps[0].value;
2132
	    else
2139
	    else
2133
		top = (xsltCompMatchPtr *) &(style->piMatch);
2140
		top = &(style->piMatch);
2134
	    break;
2141
	    break;
2135
	case XSLT_OP_COMMENT:
2142
	case XSLT_OP_COMMENT:
2136
	    top = (xsltCompMatchPtr *) &(style->commentMatch);
2143
	    top = &(style->commentMatch);
2137
	    break;
2144
	    break;
2138
	case XSLT_OP_TEXT:
2145
	case XSLT_OP_TEXT:
2139
	    top = (xsltCompMatchPtr *) &(style->textMatch);
2146
	    top = &(style->textMatch);
2140
	    break;
2147
	    break;
2141
        case XSLT_OP_ELEM:
2148
        case XSLT_OP_ELEM:
2142
	case XSLT_OP_NODE:
2149
	case XSLT_OP_NODE:
2143
	    if (pat->steps[0].value != NULL)
2150
	    if (pat->steps[0].value != NULL)
2144
		name = pat->steps[0].value;
2151
		name = pat->steps[0].value;
2145
	    else
2152
	    else
2146
		top = (xsltCompMatchPtr *) &(style->elemMatch);
2153
		top = &(style->elemMatch);
2147
	    break;
2154
	    break;
2148
	}
2155
	}
2149
	if (name != NULL) {
2156
	if (name != NULL) {
(-)python/types.c (-1 / +3 lines)
Lines 431-437 Link Here
431
431
432
    } else if PyBool_Check (obj) {
432
    } else if PyBool_Check (obj) {
433
433
434
        if (obj == Py_True) {
434
	/* Stupid hack to avoid gcc 'type-punned pointer' warning'
435
        if (obj == Py_True) { */
436
	if (PyInt_AS_LONG(obj)) {
435
          ret = xmlXPathNewBoolean(1);
437
          ret = xmlXPathNewBoolean(1);
436
        }
438
        }
437
        else {
439
        else {

Return to bug 162711