- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 27 Mar 2008 13:20:47 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/parser/analyzer In directory hutz:/tmp/cvs-serv21398 Modified Files: CssParser.java Log Message: See CssParser.jj Index: CssParser.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/parser/analyzer/CssParser.java,v retrieving revision 1.38 retrieving revision 1.39 diff -u -d -r1.38 -r1.39 --- CssParser.java 26 Mar 2008 20:55:17 -0000 1.38 +++ CssParser.java 27 Mar 2008 13:20:44 -0000 1.39 @@ -1570,7 +1570,7 @@ final public void ruleSet() throws ParseException { CssSelectors contextual; Vector<CssSelectors> context_set = new Vector<CssSelectors>(); - Vector value_set = null; + Vector<CssProperty> value_set = null; currentContext = context_set; try { contextual = selector(); @@ -1638,8 +1638,22 @@ ac.getFrame().addWarning("no-declaration"); } else {*/ if (value_set != null) { + boolean first = true; for (Enumeration e = context_set.elements(); e.hasMoreElements();) { - handleRule((CssSelectors) e.nextElement(), value_set); + if (first) { + handleRule((CssSelectors) e.nextElement(), value_set); + first = false; + } else { + // we need to duplicate properties in that case + // as property holds reference to the selectors and it interact + // badly with conflict detection + int vsize = value_set.size(); + Vector<CssProperty> v = new Vector<CssProperty>(vsize); + for (int i=0; i<vsize; i++) { + v.addElement(value_set.elementAt(i).duplicate()); + } + handleRule((CssSelectors) e.nextElement(), v); + } } setSelectorList(context_set); endOfRule(); @@ -1656,7 +1670,7 @@ } } - final public Vector declarations() throws ParseException { + final public Vector<CssProperty> declarations() throws ParseException { if(!validSelector) { validSelector = true; skip_to_matching_brace(); @@ -1664,7 +1678,7 @@ } CssProperty values; - Vector value_set = new Vector(); + Vector<CssProperty> value_set = new Vector<CssProperty>(); boolean wrong_value = true; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IDENT:
Received on Thursday, 27 March 2008 13:21:23 UTC