Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-dev] proposed fix for 1.2 branch

This is the same (simple) fix as was applied last night on the HEAD branch 
for https://bugs.eclipse.org/bugs/show_bug.cgi?id=50821
The consequences of not applying it is that the scanner's error handling 
strategy causes an out-of-memory error to happen on a unterminated 
character literal when CModelBuilder kicks in (i.e. on save or reconcile).

JohnC
www.eclipse.org/cdt

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/ChangeLog,v
retrieving revision 1.131.2.6
diff -u -r1.131.2.6 ChangeLog
--- ChangeLog	7 Nov 2003 19:49:10 -0000	1.131.2.6
+++ ChangeLog	29 Jan 2004 16:08:03 -0000
@@ -1,3 +1,6 @@
+2004-01-29 John Camelon
+	Added ScannerTestCase::testBug50821().  
+
 2003-11-07 John Camelon
 	Moved testBug39554() from ASTFailedTests to QuickParseASTTests.  
 
Index: parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java,v
retrieving revision 1.8.2.4
diff -u -r1.8.2.4 ScannerTestCase.java
--- parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java	6 Nov 2003 04:57:46 -0000	1.8.2.4
+++ parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java	29 Jan 2004 16:08:07 -0000
@@ -1528,4 +1528,13 @@
 		assertEquals( callback.inclusions.size(), 1 );
 		assertEquals( callback.inclusions.get(0), "stdio.h"); 
     }
+    
+	public void testBug50821() throws Exception
+	{
+	  Callback callback = new Callback( ParserMode.QUICK_PARSE );
+	  initializeScanner( "\'\n\n\n", ParserMode.QUICK_PARSE,  callback );
+	  scanner.nextToken(); 
+	  assertEquals( callback.problems.size(), 1 );
+	}
+
 }
Index: parser/ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/Attic/ChangeLog,v
retrieving revision 1.151.2.7
diff -u -r1.151.2.7 ChangeLog
--- parser/ChangeLog	7 Nov 2003 19:49:03 -0000	1.151.2.7
+++ parser/ChangeLog	29 Jan 2004 16:08:40 -0000
@@ -1,3 +1,6 @@
+2004-01-29 John Camelon
+	Fixed Bug 50821 - Freezes when opening / saving .c file 
+
 2003-11-07 John Camelon
 	Fixed Bug 39554 : _Pragma directive is not supported (ANSI C99) 
 
Index: parser/org/eclipse/cdt/internal/core/parser/Scanner.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Attic/Scanner.java,v
retrieving revision 1.59.2.5
diff -u -r1.59.2.5 Scanner.java
--- parser/org/eclipse/cdt/internal/core/parser/Scanner.java	7 Nov 2003 19:49:03 -0000	1.59.2.5
+++ parser/org/eclipse/cdt/internal/core/parser/Scanner.java	29 Jan 2004 16:08:44 -0000
@@ -1616,7 +1616,7 @@
         	    ( c == NOCHAR ) )
         	{
         		handleProblem( IProblem.SCANNER_BAD_CHARACTER, new Character( (char)c ).toString(),beginOffset, false, true, throwExceptionOnBadCharacterRead );
-        		c = ' ';
+        		c = '\'';
 			}			
 			// exit condition
 			if ( ( c =='\'' ) && ( prev != '\\' || prevPrev == '\\' ) ) break;

Back to the top