Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 176766 Details for
Bug 307280
Provide a way to disable capping in the comparison algorithm
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
dirty fix
clipboard.txt (text/plain), 6.53 KB, created by
Tomasz Zarna
on 2010-08-17 05:21:43 EDT
(
hide
)
Description:
dirty fix
Filename:
MIME Type:
Creator:
Tomasz Zarna
Created:
2010-08-17 05:21:43 EDT
Size:
6.53 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.compare >Index: compare/org/eclipse/compare/internal/CompareContentViewerSwitchingPane.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareContentViewerSwitchingPane.java,v >retrieving revision 1.11 >diff -u -r1.11 CompareContentViewerSwitchingPane.java >--- compare/org/eclipse/compare/internal/CompareContentViewerSwitchingPane.java 12 May 2010 15:18:29 -0000 1.11 >+++ compare/org/eclipse/compare/internal/CompareContentViewerSwitchingPane.java 17 Aug 2010 09:09:46 -0000 >@@ -16,8 +16,10 @@ > > import org.eclipse.compare.CompareConfiguration; > import org.eclipse.compare.CompareEditorInput; >+import org.eclipse.compare.CompareUI; > import org.eclipse.compare.CompareViewerSwitchingPane; > import org.eclipse.compare.Splitter; >+import org.eclipse.compare.internal.core.LCS; > import org.eclipse.compare.structuremergeviewer.ICompareInput; > import org.eclipse.jface.viewers.Viewer; > import org.eclipse.osgi.util.NLS; >@@ -37,12 +39,15 @@ > import org.eclipse.swt.graphics.Point; > import org.eclipse.swt.graphics.Rectangle; > import org.eclipse.swt.layout.RowLayout; >+import org.eclipse.swt.widgets.Button; > import org.eclipse.swt.widgets.Composite; > import org.eclipse.swt.widgets.Control; > import org.eclipse.swt.widgets.Menu; > import org.eclipse.swt.widgets.MenuItem; > import org.eclipse.swt.widgets.ToolBar; > import org.eclipse.swt.widgets.ToolItem; >+import org.eclipse.ui.IEditorPart; >+import org.eclipse.ui.IReusableEditor; > import org.eclipse.ui.PlatformUI; > > public class CompareContentViewerSwitchingPane extends >@@ -56,7 +61,7 @@ > private ViewerDescriptor fSelectedViewerDescriptor; > > private ToolBar toolBar; >- private CLabel clOptimized; >+ private Button clOptimized; > > private boolean menuShowing; > >@@ -129,7 +134,7 @@ > } > }); > >- clOptimized = new CLabel(composite, SWT.NONE); >+ clOptimized = new Button(composite, SWT.NONE); > clOptimized > .setText(CompareMessages.CompareContentViewerSwitchingPane_optimized); > clOptimized >@@ -145,6 +150,20 @@ > } > } > }); >+ clOptimized.addSelectionListener(new SelectionListener() { >+ public void widgetSelected(SelectionEvent e) { >+ LCS.cap = false; >+ IEditorPart activeEditor = fCompareEditorInput.getCompareConfiguration().getContainer().getWorkbenchPart().getSite().getPage().getActiveEditor(); >+ if (activeEditor instanceof IReusableEditor) { >+ IReusableEditor reusableEditor = (IReusableEditor) activeEditor; >+ CompareUI.reuseCompareEditor(fCompareEditorInput, reusableEditor); >+ } >+ LCS.cap = true; >+ } >+ >+ public void widgetDefaultSelected(SelectionEvent e) { >+ } >+ }); > > return composite; > } >Index: compare/org/eclipse/compare/internal/merge/DocumentMerger.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/DocumentMerger.java,v >retrieving revision 1.11 >diff -u -r1.11 DocumentMerger.java >--- compare/org/eclipse/compare/internal/merge/DocumentMerger.java 12 Apr 2010 14:36:06 -0000 1.11 >+++ compare/org/eclipse/compare/internal/merge/DocumentMerger.java 17 Aug 2010 09:09:46 -0000 >@@ -11,17 +11,35 @@ > package org.eclipse.compare.internal.merge; > > import java.lang.reflect.InvocationTargetException; >-import java.util.*; >+import java.util.ArrayList; >+import java.util.Iterator; >+import java.util.List; > > import org.eclipse.compare.CompareConfiguration; > import org.eclipse.compare.contentmergeviewer.ITokenComparator; >-import org.eclipse.compare.internal.*; >+import org.eclipse.compare.internal.CompareContentViewerSwitchingPane; >+import org.eclipse.compare.internal.CompareMessages; >+import org.eclipse.compare.internal.CompareUIPlugin; >+import org.eclipse.compare.internal.DocLineComparator; >+import org.eclipse.compare.internal.MergeViewerContentProvider; >+import org.eclipse.compare.internal.Utilities; > import org.eclipse.compare.internal.core.LCS; >-import org.eclipse.compare.rangedifferencer.*; >+import org.eclipse.compare.rangedifferencer.IRangeComparator; >+import org.eclipse.compare.rangedifferencer.RangeDifference; >+import org.eclipse.compare.rangedifferencer.RangeDifferencer; > import org.eclipse.compare.structuremergeviewer.Differencer; >-import org.eclipse.core.runtime.*; >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.core.runtime.IStatus; >+import org.eclipse.core.runtime.Status; > import org.eclipse.jface.operation.IRunnableWithProgress; >-import org.eclipse.jface.text.*; >+import org.eclipse.jface.text.BadLocationException; >+import org.eclipse.jface.text.BadPositionCategoryException; >+import org.eclipse.jface.text.IDocument; >+import org.eclipse.jface.text.IRegion; >+import org.eclipse.jface.text.Position; >+import org.eclipse.jface.text.Region; >+import org.eclipse.jface.text.TextUtilities; > import org.eclipse.swt.graphics.Image; > import org.eclipse.swt.graphics.Point; > import org.eclipse.ui.PlatformUI; >@@ -532,6 +550,8 @@ > > private boolean isCapped(DocLineComparator ancestor, > DocLineComparator left, DocLineComparator right) { >+ if (!LCS.cap) >+ return false; > int aLength = ancestor == null? 0 : ancestor.getRangeCount(); > int lLength = left.getRangeCount(); > int rLength = right.getRangeCount(); >#P org.eclipse.compare.core >Index: src/org/eclipse/compare/internal/core/LCS.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.compare/plugins/org.eclipse.compare.core/src/org/eclipse/compare/internal/core/LCS.java,v >retrieving revision 1.3 >diff -u -r1.3 LCS.java >--- src/org/eclipse/compare/internal/core/LCS.java 27 Mar 2010 09:55:29 -0000 1.3 >+++ src/org/eclipse/compare/internal/core/LCS.java 17 Aug 2010 09:09:47 -0000 >@@ -28,6 +28,8 @@ > > private int length; > >+ public static boolean cap = true; >+ > /** > * Myers' algorithm for longest common subsequence. O((M + N)D) worst case > * time, O(M + N + D^2) expected time, O(M + N) space >@@ -52,7 +54,7 @@ > } > > this.max_differences = (length1 + length2 + 1) / 2; // ceil((N+M)/2) >- if ((double) length1 * (double) length2 > TOO_LONG) { >+ if (cap && (double) length1 * (double) length2 > TOO_LONG) { > // limit complexity to D^POW_LIMIT for long sequences > this.max_differences = (int) Math.pow(this.max_differences, POW_LIMIT - 1.0); > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 307280
:
176536
|
176766
|
176767
|
178749
|
178750
|
179249