diff --git a/Ghidra/Features/BSim/ghidra_scripts/LocalBSimQueryScript.java b/Ghidra/Features/BSim/ghidra_scripts/LocalBSimQueryScript.java index 8e80902e8a..87bd14ed72 100644 --- a/Ghidra/Features/BSim/ghidra_scripts/LocalBSimQueryScript.java +++ b/Ghidra/Features/BSim/ghidra_scripts/LocalBSimQueryScript.java @@ -25,8 +25,8 @@ import generic.lsh.vector.*; import ghidra.app.decompiler.DecompileException; import ghidra.app.script.GhidraScript; import ghidra.app.services.FunctionComparisonService; -import ghidra.app.services.MatchedFunctionComparisonModel; import ghidra.app.tablechooser.*; +import ghidra.features.base.codecompare.model.MatchedFunctionComparisonModel; import ghidra.features.bsim.query.*; import ghidra.features.bsim.query.client.Configuration; import ghidra.features.bsim.query.description.FunctionDescription; diff --git a/Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/gui/search/results/BSimSearchResultsProvider.java b/Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/gui/search/results/BSimSearchResultsProvider.java index f2afad0098..c6ad4a60dd 100644 --- a/Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/gui/search/results/BSimSearchResultsProvider.java +++ b/Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/gui/search/results/BSimSearchResultsProvider.java @@ -36,6 +36,7 @@ import docking.widgets.table.RowObjectTableModel; import generic.lsh.vector.LSHVectorFactory; import generic.theme.GIcon; import ghidra.app.services.*; +import ghidra.features.base.codecompare.model.MatchedFunctionComparisonModel; import ghidra.features.bsim.gui.BSimSearchPlugin; import ghidra.features.bsim.gui.filters.BSimFilterType; import ghidra.features.bsim.gui.filters.Md5BSimFilterType; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/ExternalAddConflictPanel.java b/Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/ExternalAddConflictPanel.java index 9ffe455eb2..5fb75fbb2a 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/ExternalAddConflictPanel.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/ExternalAddConflictPanel.java @@ -22,6 +22,7 @@ import java.awt.event.ItemListener; import javax.swing.*; import docking.widgets.EmptyBorderButton; +import docking.widgets.TitledPanel; import docking.widgets.button.GRadioButton; import docking.widgets.fieldpanel.FieldPanel; import docking.widgets.fieldpanel.internal.FieldPanelCoordinator; @@ -38,7 +39,6 @@ import ghidra.app.util.viewer.format.FormatManager; import ghidra.app.util.viewer.listingpanel.*; import ghidra.app.util.viewer.multilisting.AddressTranslator; import ghidra.app.util.viewer.multilisting.MultiListingLayoutModel; -import ghidra.app.util.viewer.util.TitledPanel; import ghidra.framework.data.DomainObjectMergeManager; import ghidra.framework.model.DomainObjectListener; import ghidra.framework.options.ToolOptions; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/merge/tool/ListingMergePanel.java b/Ghidra/Features/Base/src/main/java/ghidra/app/merge/tool/ListingMergePanel.java index bf39ad664f..fde9f3b9e4 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/merge/tool/ListingMergePanel.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/merge/tool/ListingMergePanel.java @@ -24,6 +24,7 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import docking.widgets.EmptyBorderButton; +import docking.widgets.TitledPanel; import docking.widgets.checkbox.GCheckBox; import docking.widgets.fieldpanel.FieldPanel; import docking.widgets.fieldpanel.internal.FieldPanelCoordinator; @@ -41,7 +42,6 @@ import ghidra.app.util.viewer.listingpanel.*; import ghidra.app.util.viewer.multilisting.AddressTranslator; import ghidra.app.util.viewer.multilisting.MultiListingLayoutModel; import ghidra.app.util.viewer.util.AddressIndexMap; -import ghidra.app.util.viewer.util.TitledPanel; import ghidra.framework.model.DomainObjectListener; import ghidra.framework.options.ToolOptions; import ghidra.framework.plugintool.PluginTool; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/nav/ListingPanelContainer.java b/Ghidra/Features/Base/src/main/java/ghidra/app/nav/ListingPanelContainer.java index 4a4551cbd4..f0a78728f6 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/nav/ListingPanelContainer.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/nav/ListingPanelContainer.java @@ -20,8 +20,8 @@ import java.awt.Color; import javax.swing.*; +import docking.widgets.TitledPanel; import generic.theme.GColor; -import ghidra.app.util.viewer.util.TitledPanel; public class ListingPanelContainer extends JPanel { diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/actions/AbstractFunctionComparisonApplyAction.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/actions/AbstractFunctionComparisonApplyAction.java index de852b593c..b7ac2757df 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/actions/AbstractFunctionComparisonApplyAction.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/actions/AbstractFunctionComparisonApplyAction.java @@ -17,7 +17,7 @@ package ghidra.app.plugin.core.functioncompare.actions; import docking.ActionContext; import docking.action.DockingAction; -import ghidra.app.util.viewer.util.CodeComparisonActionContext; +import ghidra.features.base.codecompare.panel.CodeComparisonActionContext; import ghidra.program.model.listing.Function; import ghidra.program.model.listing.Program; import ghidra.util.Msg; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/services/FunctionComparisonService.java b/Ghidra/Features/Base/src/main/java/ghidra/app/services/FunctionComparisonService.java index 05d2f769a5..ae1b319f2f 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/services/FunctionComparisonService.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/services/FunctionComparisonService.java @@ -17,21 +17,19 @@ package ghidra.app.services; import java.util.Collection; -import ghidra.app.plugin.core.functioncompare.FunctionComparisonPlugin; -import ghidra.app.plugin.core.functioncompare.FunctionComparisonProvider; -import ghidra.framework.plugintool.ServiceInfo; +import ghidra.features.base.codecompare.model.FunctionComparisonModel; +import ghidra.features.base.codecompare.model.MatchedFunctionComparisonModel; import ghidra.program.model.listing.Function; import utility.function.Callback; /** * Service interface to create comparisons between functions which will be displayed - * side-by-side in a {@link FunctionComparisonProvider}. Each side in the + * side-by-side in a function comparison window. Each side in the * display will allow the user to select one or more functions * *

Concurrent usage: All work performed by this service will be done asynchronously on the * Swing thread. */ -@ServiceInfo(defaultProvider = FunctionComparisonPlugin.class) public interface FunctionComparisonService { /** diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/DualListingGoToService.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/DualListingGoToService.java deleted file mode 100644 index 51cb42ade0..0000000000 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/DualListingGoToService.java +++ /dev/null @@ -1,181 +0,0 @@ -/* ### - * IP: GHIDRA - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package ghidra.app.util.viewer.listingpanel; - -import ghidra.app.nav.Navigatable; -import ghidra.app.services.*; -import ghidra.program.model.address.Address; -import ghidra.program.model.address.AddressSetView; -import ghidra.program.model.listing.Program; -import ghidra.program.model.symbol.ExternalLocation; -import ghidra.program.util.ProgramLocation; -import ghidra.util.datastruct.Duo.Side; -import ghidra.util.task.TaskMonitor; - -/** - * This is a GoToService for a dual listing panel. It allows the goTo to occur relative to the - * left or right listing panel of a dual listing panel, since the left and right sides can be - * displaying totally different addresses. - */ -class DualListingGoToService implements GoToService { - - private ListingCodeComparisonPanel dualListing; - private Side side; - private GoToOverrideService overrideService; - private GoToService goToService; - - /** - * Constructs a goTo service for a dual listing panel. - * @param goToService the GoToService that this overrides and that can be used when the - * GoToService methods don't pertain specifically to the left or right listing panel. - * @param dualListing the dual listing panel - * @param side the LEFT or RIGHT side - */ - DualListingGoToService(GoToService goToService, ListingCodeComparisonPanel dualListing, - Side side) { - this.goToService = goToService; - this.dualListing = dualListing; - this.side = side; - } - - @Override - public GoToOverrideService getOverrideService() { - return overrideService; - } - - @Override - public boolean goTo(ProgramLocation loc) { - return dualGoTo(loc); - } - - @Override - public boolean goTo(Navigatable navigatable, Program program, Address address, - Address refAddress) { - return dualGoTo(new ProgramLocation(program, address)); - } - - @Override - public boolean goTo(ProgramLocation loc, Program program) { - return dualGoTo(loc); - } - - @Override - public boolean goTo(Navigatable navigatable, ProgramLocation loc, Program program) { - return dualGoTo(loc); - } - - @Override - public boolean goTo(Navigatable navigatable, Address goToAddress) { - return dualGoTo(goToAddress); - } - - /** - * Checks the address to make sure the listing won't navigate outside the addresses - * it currently has loaded. If it is not a valid address it will set a status message - * on the dual listing. - * @param addr the address to check - * @return true if the address is valid for navigation. - */ - private boolean validateAddress(Address addr) { - if (addr == null) { - return false; - } - AddressSetView addresses = dualListing.getAddresses(side); - if (!addresses.contains(addr)) { - dualListing.setStatusInfo( - "\"" + addr.toString() + "\" is outside the current listing's view."); - return false; - } - return true; - } - - private boolean dualGoTo(ProgramLocation loc) { - if (loc == null) { - return false; - } - - // Only go if the location address is in the listing's current address set. - if (!validateAddress(loc.getAddress())) { - return false; - } - - ListingPanel listingPanel = dualListing.getListingPanel(side); - return listingPanel.goTo(loc); - } - - private boolean dualGoTo(Address addr) { - - // Only go if the address is in the listing's current address set. - if (!validateAddress(addr)) { - return false; - } - - ListingPanel listingPanel = dualListing.getListingPanel(side); - return listingPanel.goTo(addr); - } - - @Override - public boolean goTo(Address currentAddress, Address goToAddress) { - return dualGoTo(goToAddress); - } - - @Override - public boolean goTo(Address goToAddress) { - return dualGoTo(goToAddress); - } - - @Override - public boolean goTo(Address goToAddress, Program program) { - return dualGoTo(goToAddress); - } - - @Override - public boolean goToExternalLocation(ExternalLocation extLoc, boolean checkNavigationOption) { - throw new UnsupportedOperationException( - "Connot Go To an external address from a dual listing view."); - } - - @Override - public boolean goToExternalLocation(Navigatable navigatable, ExternalLocation extLoc, - boolean checkNavigationOption) { - throw new UnsupportedOperationException( - "Connot Go To an external address from a dual listing view."); - } - - @Override - public boolean goToQuery(Address fromAddr, QueryData queryData, GoToServiceListener listener, - TaskMonitor monitor) { - throw new UnsupportedOperationException( - "Go To Address or Label is not allowed in a dual listing view."); - } - - @Override - public boolean goToQuery(Navigatable navigatable, Address fromAddr, QueryData queryData, - GoToServiceListener listener, TaskMonitor monitor) { - throw new UnsupportedOperationException( - "Go To Address or Label is not allowed in a dual listing view."); - } - - @Override - public void setOverrideService(GoToOverrideService override) { - overrideService = override; - } - - @Override - public Navigatable getDefaultNavigatable() { - return goToService.getDefaultNavigatable(); - } -} diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/DualListingServiceProvider.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/DualListingServiceProvider.java deleted file mode 100644 index 4a80ad1891..0000000000 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/DualListingServiceProvider.java +++ /dev/null @@ -1,66 +0,0 @@ -/* ### - * IP: GHIDRA - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package ghidra.app.util.viewer.listingpanel; - -import ghidra.app.services.GoToService; -import ghidra.framework.plugintool.ServiceProvider; -import ghidra.framework.plugintool.util.ServiceListener; -import ghidra.util.datastruct.Duo.Side; - -/** - * This provides services, but overrides and implements its own goTo for one of the listing - * panels in a dual listing code comparison panel. - * If a goTo service is requested, this provides a goTo service that limits where you can go. - * It constrains the goTo to addresses that are currently in the indicated listing panel of - * the dual listing code comparison panel. - */ -class DualListingServiceProvider implements ServiceProvider { - - private ServiceProvider serviceProvider; - private DualListingGoToService dualListingGoToService; - - /** - * Constructor for a DualListingServiceProvider. - * @param serviceProvider the service provider to use for acquiring services other than goTo. - * @param panel the dual listing code comparison panel. - * @param side LEFT or RIGHT - */ - DualListingServiceProvider(ServiceProvider serviceProvider, ListingCodeComparisonPanel panel, - Side side) { - this.serviceProvider = serviceProvider; - GoToService goToService = serviceProvider.getService(GoToService.class); - this.dualListingGoToService = new DualListingGoToService(goToService, panel, side); - } - - @Override - public void addServiceListener(ServiceListener listener) { - serviceProvider.addServiceListener(listener); - } - - @Override - public T getService(Class serviceClass) { - if (serviceClass == GoToService.class) { - return serviceClass.cast(dualListingGoToService); - } - return serviceProvider.getService(serviceClass); - } - - @Override - public void removeServiceListener(ServiceListener listener) { - serviceProvider.removeServiceListener(listener); - } - -} diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/AddressPixelMap.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/AddressPixelMap.java deleted file mode 100644 index 130c95a3b8..0000000000 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/AddressPixelMap.java +++ /dev/null @@ -1,37 +0,0 @@ -/* ### - * IP: GHIDRA - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package ghidra.app.util.viewer.util; - -import java.awt.Rectangle; - -import ghidra.program.model.address.Address; -import ghidra.program.model.mem.MemoryBlock; - -public interface AddressPixelMap { - - public void createMapping(int width); - - public Address getAddress(int pixel); - - public int getPixel(Address address); - - public MemoryBlock[] getBlocks(); - - public Rectangle getBlockPosition(MemoryBlock memoryBlock); - - public void clear(); - -} diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/MemoryBlockMap.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/MemoryBlockMap.java deleted file mode 100644 index c217e8bdd8..0000000000 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/MemoryBlockMap.java +++ /dev/null @@ -1,122 +0,0 @@ -/* ### - * IP: GHIDRA - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package ghidra.app.util.viewer.util; - -import java.awt.Rectangle; - -import ghidra.program.model.address.Address; -import ghidra.program.model.listing.Program; -import ghidra.program.model.mem.MemoryBlock; - -public class MemoryBlockMap implements AddressPixelMap { - - private Program program; - private MemoryBlock[] blocks; - private float addressesPerPixel; - private int[] pixels; - - public MemoryBlockMap(Program program) { - this.program = program; - } - - @Override - public void createMapping(int width) { - if (width <= 0) { - return; - } - - blocks = includeBlocks(); - pixels = new int[blocks.length]; - long totalSize = 0; - for (MemoryBlock block : blocks) { - totalSize += block.getSize(); - } - addressesPerPixel = (float) totalSize / (float) width; - for (int i = 0; i < blocks.length; i++) { - pixels[i] = Math.round(blocks[i].getSize() / addressesPerPixel); - } - } - - protected MemoryBlock[] includeBlocks() { - return program.getMemory().getBlocks(); - } - - @Override - public Address getAddress(int pixel) { - if (pixels == null) { - return null; - } - - try { - int curPos = 0; - for (int i = 0; i < pixels.length; i++) { - int curSize = pixels[i]; - if (curPos + curSize > pixel) { - return blocks[i].getStart().add( - Math.round((pixel - curPos) * addressesPerPixel)); - } - curPos += curSize; - } - } - catch (Exception e) { - } - - return null; - } - - @Override - public int getPixel(Address address) { - if (address == null || pixels == null || blocks == null) { - return -1; - } - - int curPixel = 0; - for (int i = 0; i < blocks.length; i++) { - MemoryBlock block = blocks[i]; - if (block.contains(address)) { - long offset = address.subtract(block.getStart()); - return curPixel + Math.round(offset / addressesPerPixel); - } - curPixel += pixels[i]; - } - return -1; - } - - @Override - public MemoryBlock[] getBlocks() { - return blocks; - } - - @Override - public Rectangle getBlockPosition(MemoryBlock block) { - int x = 0; - for (int i = 0; i < blocks.length; i++) { - if (block == blocks[i]) { - return new Rectangle(x, 0, pixels[i], 0); - } - x += pixels[i]; - } - - return null; - } - - @Override - public void clear() { - blocks = null; - pixels = null; - } - -} diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/LinearAddressCorrelation.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/LinearAddressCorrelation.java similarity index 96% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/LinearAddressCorrelation.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/LinearAddressCorrelation.java index 21c1d823ba..0500e51c89 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/LinearAddressCorrelation.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/LinearAddressCorrelation.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.listingpanel; +package ghidra.features.base.codecompare.listing; import static ghidra.util.datastruct.Duo.Side.*; -import ghidra.app.util.viewer.util.ComparisonData; +import ghidra.features.base.codecompare.panel.ComparisonData; import ghidra.program.model.address.Address; import ghidra.program.model.address.AddressSetView; import ghidra.program.model.listing.*; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingCodeComparisonOptions.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingCodeComparisonOptions.java similarity index 99% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingCodeComparisonOptions.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingCodeComparisonOptions.java index dce08520e7..369dac109e 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingCodeComparisonOptions.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingCodeComparisonOptions.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.listingpanel; +package ghidra.features.base.codecompare.listing; import java.awt.Color; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingCodeComparisonPanel.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingCodeComparisonPanel.java similarity index 98% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingCodeComparisonPanel.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingCodeComparisonPanel.java index 0bcbdbaa7f..6df213669f 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingCodeComparisonPanel.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingCodeComparisonPanel.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.listingpanel; +package ghidra.features.base.codecompare.listing; import static ghidra.util.datastruct.Duo.Side.*; @@ -36,8 +36,9 @@ import generic.theme.GIcon; import ghidra.app.plugin.core.functioncompare.actions.*; import ghidra.app.util.ListingHighlightProvider; import ghidra.app.util.viewer.format.*; -import ghidra.app.util.viewer.util.CodeComparisonPanel; -import ghidra.app.util.viewer.util.CodeComparisonPanelActionContext; +import ghidra.app.util.viewer.listingpanel.*; +import ghidra.features.base.codecompare.panel.CodeComparisonPanel; +import ghidra.features.base.codecompare.panel.CodeComparisonPanelActionContext; import ghidra.framework.options.*; import ghidra.framework.plugintool.PluginTool; import ghidra.program.model.address.*; @@ -250,7 +251,7 @@ public class ListingCodeComparisonPanel public ActionContext getActionContext(ComponentProvider provider, MouseEvent event) { if (event == null) { - DualListingActionContext context = new DualListingActionContext(provider, this); + ListingComparisonActionContext context = new ListingComparisonActionContext(provider, this); return context; } @@ -273,7 +274,7 @@ public class ListingCodeComparisonPanel return new DefaultActionContext(provider).setContextObject(fieldHeaderLocation); } - return new DualListingActionContext(provider, this); + return new ListingComparisonActionContext(provider, this); } /** diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/DualListingActionContext.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingComparisonActionContext.java similarity index 81% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/DualListingActionContext.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingComparisonActionContext.java index a8a3e6287c..9633f05a47 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/DualListingActionContext.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingComparisonActionContext.java @@ -13,15 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.listingpanel; +package ghidra.features.base.codecompare.listing; import docking.ComponentProvider; -import ghidra.app.util.viewer.util.CodeComparisonActionContext; +import ghidra.features.base.codecompare.panel.CodeComparisonActionContext; /** * Action context for a ListingCodeComparisonPanel. */ -public class DualListingActionContext extends CodeComparisonActionContext { +public class ListingComparisonActionContext extends CodeComparisonActionContext { private ListingCodeComparisonPanel codeComparisonPanel = null; @@ -30,7 +30,7 @@ public class DualListingActionContext extends CodeComparisonActionContext { * @param provider the provider that uses this action context. * @param panel the ListingCodeComparisonPanel that generated this context */ - public DualListingActionContext(ComponentProvider provider, ListingCodeComparisonPanel panel) { + public ListingComparisonActionContext(ComponentProvider provider, ListingCodeComparisonPanel panel) { super(provider, panel, panel.getActiveListingPanel().getFieldPanel()); this.codeComparisonPanel = panel; } diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingCoordinator.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingCoordinator.java similarity index 97% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingCoordinator.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingCoordinator.java index 91a63421b1..a632cba401 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingCoordinator.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingCoordinator.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.listingpanel; +package ghidra.features.base.codecompare.listing; import static ghidra.util.datastruct.Duo.Side.*; @@ -23,6 +23,7 @@ import docking.widgets.fieldpanel.FieldPanel; import docking.widgets.fieldpanel.internal.LayoutLockedFieldPanelCoordinator; import docking.widgets.fieldpanel.internal.LineLockedFieldPanelCoordinator; import docking.widgets.fieldpanel.support.ViewerPosition; +import ghidra.app.util.viewer.listingpanel.ProgramLocationTranslator; import ghidra.app.util.viewer.util.AddressIndexMap; import ghidra.program.model.address.Address; import ghidra.program.util.ListingAddressCorrelation; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingDiffActionManager.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDiffActionManager.java similarity index 95% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingDiffActionManager.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDiffActionManager.java index cb226dc422..4601d2590b 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingDiffActionManager.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDiffActionManager.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.listingpanel; +package ghidra.features.base.codecompare.listing; import java.util.Arrays; import java.util.List; @@ -89,7 +89,7 @@ public class ListingDiffActionManager { toggleIgnoreRegisterNamesAction.setEnabled(isShowing); } - class ToggleIgnoreByteDiffsAction extends DualListingToggleDockingAction { + class ToggleIgnoreByteDiffsAction extends ListingDisplayToggleAction { ToggleIgnoreByteDiffsAction() { super("Toggle Ignore Byte Diffs", "DualListing"); @@ -117,7 +117,7 @@ public class ListingDiffActionManager { } } - class ToggleIgnoreConstantsAction extends DualListingToggleDockingAction { + class ToggleIgnoreConstantsAction extends ListingDisplayToggleAction { ToggleIgnoreConstantsAction() { super("Toggle Ignore Constants", "DualListing"); @@ -146,7 +146,7 @@ public class ListingDiffActionManager { } } - class ToggleIgnoreRegisterNamesAction extends DualListingToggleDockingAction { + class ToggleIgnoreRegisterNamesAction extends ListingDisplayToggleAction { ToggleIgnoreRegisterNamesAction() { super("Toggle Ignore Register Names", "DualListing"); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingDiffChangeListener.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDiffChangeListener.java similarity index 94% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingDiffChangeListener.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDiffChangeListener.java index 6be82694fb..d684d6d895 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingDiffChangeListener.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDiffChangeListener.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.listingpanel; +package ghidra.features.base.codecompare.listing; /** * Interface defining a listener that gets notified when the ListingDiff's set of differences diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingDiffHighlightProvider.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDiffHighlightProvider.java similarity index 99% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingDiffHighlightProvider.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDiffHighlightProvider.java index 17315b1497..3b2553a46c 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingDiffHighlightProvider.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDiffHighlightProvider.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.listingpanel; +package ghidra.features.base.codecompare.listing; import java.awt.Color; import java.util.*; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingDisplay.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDisplay.java similarity index 99% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingDisplay.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDisplay.java index f08a2bb60c..1862805462 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingDisplay.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDisplay.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.listingpanel; +package ghidra.features.base.codecompare.listing; import static ghidra.GhidraOptions.*; @@ -30,6 +30,7 @@ import ghidra.app.plugin.core.marker.MarkerManager; import ghidra.app.services.*; import ghidra.app.util.ListingHighlightProvider; import ghidra.app.util.viewer.format.FormatManager; +import ghidra.app.util.viewer.listingpanel.*; import ghidra.app.util.viewer.util.AddressIndexMap; import ghidra.app.util.viewer.util.FieldNavigator; import ghidra.framework.options.ToolOptions; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingDisplayGoToService.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDisplayGoToService.java similarity index 92% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingDisplayGoToService.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDisplayGoToService.java index 321f4dfc2c..9173aa8f11 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/ListingDisplayGoToService.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDisplayGoToService.java @@ -13,11 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.listingpanel; +package ghidra.features.base.codecompare.listing; import docking.DockingWindowManager; import ghidra.app.nav.Navigatable; import ghidra.app.services.*; +import ghidra.app.util.viewer.listingpanel.ListingPanel; import ghidra.app.util.viewer.util.AddressIndexMap; import ghidra.program.model.address.Address; import ghidra.program.model.address.AddressSetView; @@ -28,8 +29,8 @@ import ghidra.util.Msg; import ghidra.util.task.TaskMonitor; /** - * This is a GoToService for a dual listing panel. It allows the goTo to occur relative to the - * left or right listing panel of a dual listing panel, since the left and right sides can be + * This is a GoToService for a listing code compare panel. It allows the goTo to occur relative to + * the left or right listing panel of a dual listing panel, since the left and right sides can be * displaying totally different addresses. */ class ListingDisplayGoToService implements GoToService { @@ -126,7 +127,7 @@ class ListingDisplayGoToService implements GoToService { @Override public Navigatable getDefaultNavigatable() { - return new DualListingNavigator(listingPanel, this); + return new ListingDisplayNavigator(listingPanel, this); } private boolean doGoTo(Address addr) { diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/DualListingNavigator.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDisplayNavigator.java similarity index 93% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/DualListingNavigator.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDisplayNavigator.java index adf74a6757..a489f5db65 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/DualListingNavigator.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDisplayNavigator.java @@ -13,13 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.listingpanel; +package ghidra.features.base.codecompare.listing; import javax.swing.Icon; import ghidra.app.nav.*; import ghidra.app.services.GoToService; import ghidra.app.util.ListingHighlightProvider; +import ghidra.app.util.viewer.listingpanel.ListingPanel; import ghidra.program.model.listing.Program; import ghidra.program.util.ProgramLocation; import ghidra.program.util.ProgramSelection; @@ -28,7 +29,7 @@ import ghidra.util.UniversalIdGenerator; /** * Navigator for the listings contained in a ListingCodeComparisonPanel. */ -class DualListingNavigator implements Navigatable { +class ListingDisplayNavigator implements Navigatable { private final ListingPanel listingPanel; private long id; @@ -40,7 +41,7 @@ class DualListingNavigator implements Navigatable { * @param goToService which side LEFT or RIGHT * false means it's for the right side listing. */ - DualListingNavigator(ListingPanel listingPanel, GoToService goToService) { + ListingDisplayNavigator(ListingPanel listingPanel, GoToService goToService) { this.listingPanel = listingPanel; this.goToService = goToService; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/DualListingToggleDockingAction.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDisplayToggleAction.java similarity index 81% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/DualListingToggleDockingAction.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDisplayToggleAction.java index 16ab4f934c..912d1679ef 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/listingpanel/DualListingToggleDockingAction.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/listing/ListingDisplayToggleAction.java @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.listingpanel; +package ghidra.features.base.codecompare.listing; import docking.ActionContext; import docking.action.ToggleDockingAction; import docking.widgets.fieldpanel.FieldPanel; /** - * Class that dual listing toggle actions should extend. + * Class that listing display toggle actions should extend. */ -abstract class DualListingToggleDockingAction extends ToggleDockingAction { +abstract class ListingDisplayToggleAction extends ToggleDockingAction { /** * Constructor that creates a toggle action for a dual listing. @@ -30,7 +30,7 @@ abstract class DualListingToggleDockingAction extends ToggleDockingAction { * @param owner the owner of this action * @param supportsKeyBindings true if this action's key binding should be managed */ - public DualListingToggleDockingAction(String name, String owner, boolean supportsKeyBindings) { + public ListingDisplayToggleAction(String name, String owner, boolean supportsKeyBindings) { super(name, owner, supportsKeyBindings); } @@ -39,7 +39,7 @@ abstract class DualListingToggleDockingAction extends ToggleDockingAction { * @param name the name for this action * @param owner the owner of this action */ - public DualListingToggleDockingAction(String name, String owner) { + public ListingDisplayToggleAction(String name, String owner) { super(name, owner); } diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/services/AbstractFunctionComparisonModel.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/model/AbstractFunctionComparisonModel.java similarity index 96% rename from Ghidra/Features/Base/src/main/java/ghidra/app/services/AbstractFunctionComparisonModel.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/model/AbstractFunctionComparisonModel.java index 0adbff1a18..20805ce865 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/services/AbstractFunctionComparisonModel.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/model/AbstractFunctionComparisonModel.java @@ -13,11 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.services; +package ghidra.features.base.codecompare.model; import java.util.*; -import ghidra.app.plugin.core.functioncompare.FunctionComparisonModelListener; import ghidra.program.model.listing.Function; import ghidra.util.datastruct.Duo; import ghidra.util.datastruct.Duo.Side; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/services/DefaultFunctionComparisonModel.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/model/DefaultFunctionComparisonModel.java similarity index 98% rename from Ghidra/Features/Base/src/main/java/ghidra/app/services/DefaultFunctionComparisonModel.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/model/DefaultFunctionComparisonModel.java index ef065d1497..30c84a9d44 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/services/DefaultFunctionComparisonModel.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/model/DefaultFunctionComparisonModel.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.services; +package ghidra.features.base.codecompare.model; import static ghidra.util.datastruct.Duo.Side.*; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/services/FunctionComparisonModel.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/model/FunctionComparisonModel.java similarity index 79% rename from Ghidra/Features/Base/src/main/java/ghidra/app/services/FunctionComparisonModel.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/model/FunctionComparisonModel.java index addc8f6ef9..f3a2af220e 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/services/FunctionComparisonModel.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/model/FunctionComparisonModel.java @@ -16,25 +16,27 @@ /** * */ -package ghidra.app.services; +package ghidra.features.base.codecompare.model; import java.util.Collection; import java.util.List; -import ghidra.app.plugin.core.functioncompare.FunctionComparisonModelListener; -import ghidra.app.plugin.core.functioncompare.FunctionComparisonProvider; +import ghidra.app.services.FunctionComparisonService; import ghidra.program.model.listing.Function; import ghidra.program.model.listing.Program; import ghidra.util.datastruct.Duo.Side; /** - * A collection of {@link FunctionComparison function comparison} - * objects that describe how functions may be compared. Each comparison object - * is a mapping of a function (source) to a list of functions (targets). + * A model for comparing one or more functions in a side by side display. The model supports the + * concept of a set of function that can be selected for each side of the comparison. It also + * maintains the selected function for each side. The default model simply has a single set + * of functions that can be selected for either side of the comparison. The model supports the + * concept of different sets of functions for each and even the idea the the active function for + * one side can determine the set of functions for the other side. See + * {@link MatchedFunctionComparisonModel}. *

- * This model is intended to be used by the {@link FunctionComparisonProvider} - * as the basis for its display. It should never be created manually, and should - * only be accessed via the {@link FunctionComparisonService}. + * This model is intended to be used by the the {@link FunctionComparisonService} to generate + * a function comparison display window. *

* Note: Subscribers may register to be informed of changes to this model via the * {@link FunctionComparisonModelListener comparison model listener} interface. diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/FunctionComparisonModelListener.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/model/FunctionComparisonModelListener.java similarity index 92% rename from Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/FunctionComparisonModelListener.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/model/FunctionComparisonModelListener.java index 6accb19dc9..9678f0aff8 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/FunctionComparisonModelListener.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/model/FunctionComparisonModelListener.java @@ -13,9 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.plugin.core.functioncompare; +package ghidra.features.base.codecompare.model; -import ghidra.app.services.FunctionComparisonModel; import ghidra.program.model.listing.Function; import ghidra.util.datastruct.Duo.Side; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/services/MatchedFunctionComparisonModel.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/model/MatchedFunctionComparisonModel.java similarity index 99% rename from Ghidra/Features/Base/src/main/java/ghidra/app/services/MatchedFunctionComparisonModel.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/model/MatchedFunctionComparisonModel.java index 1aa8b6c216..ddd9d9325e 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/services/MatchedFunctionComparisonModel.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/model/MatchedFunctionComparisonModel.java @@ -16,7 +16,7 @@ /** * */ -package ghidra.app.services; +package ghidra.features.base.codecompare.model; import static ghidra.util.datastruct.Duo.Side.*; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/AddressSetComparisonData.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/AddressSetComparisonData.java similarity index 97% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/AddressSetComparisonData.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/AddressSetComparisonData.java index 49d5fc13fa..785d2706d6 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/AddressSetComparisonData.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/AddressSetComparisonData.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.util; +package ghidra.features.base.codecompare.panel; import java.util.Objects; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/CodeComparisonActionContext.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/CodeComparisonActionContext.java similarity index 97% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/CodeComparisonActionContext.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/CodeComparisonActionContext.java index f798bc7aa2..8e7e77ceb7 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/CodeComparisonActionContext.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/CodeComparisonActionContext.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.util; +package ghidra.features.base.codecompare.panel; import java.awt.Component; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/CodeComparisonPanel.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/CodeComparisonPanel.java similarity index 98% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/CodeComparisonPanel.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/CodeComparisonPanel.java index 3431c2021c..deaae484d9 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/CodeComparisonPanel.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/CodeComparisonPanel.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.util; +package ghidra.features.base.codecompare.panel; -import static ghidra.app.util.viewer.util.ComparisonData.*; +import static ghidra.features.base.codecompare.panel.ComparisonData.*; import static ghidra.util.datastruct.Duo.Side.*; import java.awt.*; @@ -29,8 +29,8 @@ import javax.swing.border.Border; import docking.ActionContext; import docking.ComponentProvider; import docking.action.*; +import docking.widgets.TitledPanel; import generic.theme.GThemeDefaults.Colors.Palette; -import ghidra.app.plugin.core.functioncompare.FunctionComparisonPanel; import ghidra.framework.plugintool.PluginTool; import ghidra.program.model.address.AddressSetView; import ghidra.program.model.listing.Function; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/CodeComparisonPanelActionContext.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/CodeComparisonPanelActionContext.java similarity index 94% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/CodeComparisonPanelActionContext.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/CodeComparisonPanelActionContext.java index 1082410139..b923b851fd 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/CodeComparisonPanelActionContext.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/CodeComparisonPanelActionContext.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.util; +package ghidra.features.base.codecompare.panel; /** * Action context for a CodeComparisonPanel. diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/ComparisonData.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/ComparisonData.java similarity index 97% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/ComparisonData.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/ComparisonData.java index f112453437..a4a6db0366 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/ComparisonData.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/ComparisonData.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.util; +package ghidra.features.base.codecompare.panel; import java.awt.Color; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/DataComparisonData.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/DataComparisonData.java similarity index 98% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/DataComparisonData.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/DataComparisonData.java index c7b80d0925..859d6ab907 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/DataComparisonData.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/DataComparisonData.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.util; +package ghidra.features.base.codecompare.panel; import java.util.Objects; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/EmptyComparisonData.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/EmptyComparisonData.java similarity index 96% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/EmptyComparisonData.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/EmptyComparisonData.java index de6cccf4b2..36313401c3 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/EmptyComparisonData.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/EmptyComparisonData.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.util; +package ghidra.features.base.codecompare.panel; import ghidra.program.model.address.AddressSet; import ghidra.program.model.address.AddressSetView; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/FunctionComparisonData.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/FunctionComparisonData.java similarity index 97% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/FunctionComparisonData.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/FunctionComparisonData.java index 9c6a22081b..4c8080f4f1 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/FunctionComparisonData.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/FunctionComparisonData.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.util; +package ghidra.features.base.codecompare.panel; import java.util.Objects; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/FunctionComparisonPanel.java b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/FunctionComparisonPanel.java similarity index 97% rename from Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/FunctionComparisonPanel.java rename to Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/FunctionComparisonPanel.java index 8011e84c75..b68d53e465 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/FunctionComparisonPanel.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/features/base/codecompare/panel/FunctionComparisonPanel.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.plugin.core.functioncompare; +package ghidra.features.base.codecompare.panel; -import static ghidra.app.util.viewer.util.ComparisonData.*; +import static ghidra.features.base.codecompare.panel.ComparisonData.*; import static ghidra.util.datastruct.Duo.Side.*; import java.awt.*; @@ -34,8 +34,7 @@ import docking.ComponentProvider; import docking.action.*; import docking.widgets.tabbedpane.DockingTabRenderer; import generic.theme.GIcon; -import ghidra.app.util.viewer.listingpanel.ListingCodeComparisonPanel; -import ghidra.app.util.viewer.util.*; +import ghidra.features.base.codecompare.listing.ListingCodeComparisonPanel; import ghidra.framework.options.SaveState; import ghidra.framework.plugintool.PluginTool; import ghidra.program.model.address.AddressSet; @@ -51,9 +50,6 @@ import help.HelpService; /** * A panel for displaying {@link Function functions}, {@link Data data}, or * {@link AddressSet address sets} side-by-side for comparison purposes - *

- * Note: This is strictly for a one-to-one comparison; if multiple items are to - * be compared, use a {@link MultiFunctionComparisonPanel} */ public class FunctionComparisonPanel extends JPanel implements ChangeListener { private static final String ORIENTATION_PROPERTY_NAME = "ORIENTATION"; @@ -264,13 +260,13 @@ public class FunctionComparisonPanel extends JPanel implements ChangeListener { } } - void programClosed(Program program) { + public void programClosed(Program program) { for (CodeComparisonPanel codeComparisonPanel : codeComparisonPanels) { codeComparisonPanel.programClosed(program); } } - CodeComparisonPanel getCodeComparisonPanelByName(String name) { + public CodeComparisonPanel getCodeComparisonPanelByName(String name) { for (CodeComparisonPanel codeComparisonPanel : codeComparisonPanels) { if (name.equals(codeComparisonPanel.getName())) { return codeComparisonPanel; @@ -471,7 +467,7 @@ public class FunctionComparisonPanel extends JPanel implements ChangeListener { * * @return null if there is no code comparison panel */ - CodeComparisonPanel getCurrentComponent() { + public CodeComparisonPanel getCurrentComponent() { return (CodeComparisonPanel) tabbedPane.getSelectedComponent(); } diff --git a/Ghidra/Features/Base/src/main/java/ghidra/program/util/ListingDiff.java b/Ghidra/Features/Base/src/main/java/ghidra/program/util/ListingDiff.java index 520fe84fb5..5523f4c4ec 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/program/util/ListingDiff.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/program/util/ListingDiff.java @@ -19,7 +19,7 @@ import static ghidra.util.datastruct.Duo.Side.*; import java.util.ArrayList; -import ghidra.app.util.viewer.listingpanel.ListingDiffChangeListener; +import ghidra.features.base.codecompare.listing.ListingDiffChangeListener; import ghidra.program.model.address.*; import ghidra.program.model.data.DataType; import ghidra.program.model.lang.Register; diff --git a/Ghidra/Features/Base/src/test/java/ghidra/app/plugin/core/functioncompare/DefaultComparisonModelTest.java b/Ghidra/Features/Base/src/test/java/ghidra/features/base/codecompare/model/DefaultComparisonModelTest.java similarity index 98% rename from Ghidra/Features/Base/src/test/java/ghidra/app/plugin/core/functioncompare/DefaultComparisonModelTest.java rename to Ghidra/Features/Base/src/test/java/ghidra/features/base/codecompare/model/DefaultComparisonModelTest.java index f3781484af..90430867d9 100644 --- a/Ghidra/Features/Base/src/test/java/ghidra/app/plugin/core/functioncompare/DefaultComparisonModelTest.java +++ b/Ghidra/Features/Base/src/test/java/ghidra/features/base/codecompare/model/DefaultComparisonModelTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.plugin.core.functioncompare; +package ghidra.features.base.codecompare.model; import static ghidra.util.datastruct.Duo.Side.*; import static org.junit.Assert.*; @@ -24,8 +24,9 @@ import org.junit.Before; import org.junit.Test; import generic.test.AbstractGenericTest; -import ghidra.app.services.DefaultFunctionComparisonModel; import ghidra.app.services.FunctionComparisonService; +import ghidra.features.base.codecompare.model.DefaultFunctionComparisonModel; +import ghidra.features.base.codecompare.model.FunctionComparisonModelListener; import ghidra.program.database.ProgramBuilder; import ghidra.program.model.data.ByteDataType; import ghidra.program.model.data.DataType; diff --git a/Ghidra/Features/Base/src/test/java/ghidra/app/plugin/core/functioncompare/MatchedFunctionComparisonModelTest.java b/Ghidra/Features/Base/src/test/java/ghidra/features/base/codecompare/model/MatchedFunctionComparisonModelTest.java similarity index 99% rename from Ghidra/Features/Base/src/test/java/ghidra/app/plugin/core/functioncompare/MatchedFunctionComparisonModelTest.java rename to Ghidra/Features/Base/src/test/java/ghidra/features/base/codecompare/model/MatchedFunctionComparisonModelTest.java index 0d8a72c9b7..fb816a2031 100644 --- a/Ghidra/Features/Base/src/test/java/ghidra/app/plugin/core/functioncompare/MatchedFunctionComparisonModelTest.java +++ b/Ghidra/Features/Base/src/test/java/ghidra/features/base/codecompare/model/MatchedFunctionComparisonModelTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.plugin.core.functioncompare; +package ghidra.features.base.codecompare.model; import static ghidra.util.datastruct.Duo.Side.*; import static org.junit.Assert.*; @@ -25,7 +25,7 @@ import org.junit.Before; import org.junit.Test; import generic.test.AbstractGenericTest; -import ghidra.app.services.*; +import ghidra.app.services.FunctionComparisonService; import ghidra.program.database.ProgramBuilder; import ghidra.program.model.data.ByteDataType; import ghidra.program.model.data.DataType; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/feature/vt/api/correlator/address/CodeCompareAddressCorrelation.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/correlator/CodeCompareAddressCorrelation.java similarity index 99% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/feature/vt/api/correlator/address/CodeCompareAddressCorrelation.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/correlator/CodeCompareAddressCorrelation.java index c286955ec4..d5f601330b 100755 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/feature/vt/api/correlator/address/CodeCompareAddressCorrelation.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/correlator/CodeCompareAddressCorrelation.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.feature.vt.api.correlator.address; +package ghidra.features.codecompare.correlator; import java.util.*; import java.util.Map.Entry; import ghidra.app.decompiler.*; -import ghidra.codecompare.graphanalysis.Pinning; -import ghidra.codecompare.graphanalysis.TokenBin; +import ghidra.features.codecompare.graphanalysis.Pinning; +import ghidra.features.codecompare.graphanalysis.TokenBin; import ghidra.program.model.address.*; import ghidra.program.model.block.*; import ghidra.program.model.listing.*; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/feature/vt/api/correlator/address/CodeCompareAddressCorrelator.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/correlator/CodeCompareAddressCorrelator.java similarity index 97% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/feature/vt/api/correlator/address/CodeCompareAddressCorrelator.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/correlator/CodeCompareAddressCorrelator.java index 5d6a9f4afd..c68744698f 100755 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/feature/vt/api/correlator/address/CodeCompareAddressCorrelator.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/correlator/CodeCompareAddressCorrelator.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.feature.vt.api.correlator.address; +package ghidra.features.codecompare.correlator; import ghidra.framework.options.Options; import ghidra.framework.options.ToolOptions; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/feature/vt/api/correlator/address/DebugUtils.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/correlator/DebugUtils.java similarity index 97% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/feature/vt/api/correlator/address/DebugUtils.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/correlator/DebugUtils.java index 504af48049..e3df2cb577 100755 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/feature/vt/api/correlator/address/DebugUtils.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/correlator/DebugUtils.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.feature.vt.api.correlator.address; +package ghidra.features.codecompare.correlator; import java.awt.Color; import java.util.*; import java.util.Map.Entry; import ghidra.app.util.viewer.listingpanel.PropertyBasedBackgroundColorModel; -import ghidra.feature.vt.api.correlator.address.CodeCompareAddressCorrelation.CorrelationContainer; +import ghidra.features.codecompare.correlator.CodeCompareAddressCorrelation.CorrelationContainer; import ghidra.program.database.IntRangeMap; import ghidra.program.model.address.*; import ghidra.program.model.listing.*; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/AbstractMatchedTokensAction.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/AbstractMatchedTokensAction.java similarity index 97% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/AbstractMatchedTokensAction.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/AbstractMatchedTokensAction.java index f195272ef0..e00c3384db 100644 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/AbstractMatchedTokensAction.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/AbstractMatchedTokensAction.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.decompile; +package ghidra.features.codecompare.decompile; import static ghidra.util.datastruct.Duo.Side.*; @@ -25,7 +25,7 @@ import docking.action.DockingAction; import ghidra.app.decompiler.ClangToken; import ghidra.app.decompiler.DecompilerLocation; import ghidra.app.decompiler.component.DecompilerPanel; -import ghidra.codecompare.graphanalysis.TokenBin; +import ghidra.features.codecompare.graphanalysis.TokenBin; import ghidra.program.model.listing.Program; import ghidra.util.datastruct.Duo.Side; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/CDisplay.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/CDisplay.java similarity index 98% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/CDisplay.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/CDisplay.java index 83aad0dc5c..160c243185 100644 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/CDisplay.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/CDisplay.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.decompile; +package ghidra.features.codecompare.decompile; import java.math.BigInteger; import java.util.function.Consumer; @@ -24,7 +24,6 @@ import docking.widgets.fieldpanel.support.ViewerPosition; import ghidra.GhidraOptions; import ghidra.app.decompiler.DecompileOptions; import ghidra.app.decompiler.component.*; -import ghidra.codecompare.DiffClangHighlightController; import ghidra.framework.options.ToolOptions; import ghidra.framework.plugintool.PluginTool; import ghidra.program.model.address.Address; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/CodeDiffFieldPanelCoordinator.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/CodeDiffFieldPanelCoordinator.java similarity index 98% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/CodeDiffFieldPanelCoordinator.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/CodeDiffFieldPanelCoordinator.java index f3ae591e13..85db586fb8 100755 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/CodeDiffFieldPanelCoordinator.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/CodeDiffFieldPanelCoordinator.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.decompile; +package ghidra.features.codecompare.decompile; import static ghidra.util.datastruct.Duo.Side.*; @@ -27,7 +27,7 @@ import org.apache.commons.collections4.bidimap.DualHashBidiMap; import docking.widgets.fieldpanel.support.ViewerPosition; import ghidra.app.decompiler.*; import ghidra.app.decompiler.component.DecompilerPanel; -import ghidra.codecompare.graphanalysis.TokenBin; +import ghidra.features.codecompare.graphanalysis.TokenBin; import ghidra.program.model.pcode.HighFunction; import ghidra.program.util.ProgramLocation; import ghidra.util.exception.CancelledException; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/CompareFuncsFromMatchedTokensAction.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/CompareFuncsFromMatchedTokensAction.java similarity index 99% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/CompareFuncsFromMatchedTokensAction.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/CompareFuncsFromMatchedTokensAction.java index 4428178ee7..127d862c9c 100644 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/CompareFuncsFromMatchedTokensAction.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/CompareFuncsFromMatchedTokensAction.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.decompile; +package ghidra.features.codecompare.decompile; import static ghidra.util.datastruct.Duo.Side.*; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DecompileDataDiff.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DecompileDataDiff.java similarity index 97% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DecompileDataDiff.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DecompileDataDiff.java index 3af1359ff6..1b8b3a0c6c 100755 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DecompileDataDiff.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DecompileDataDiff.java @@ -13,15 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.decompile; +package ghidra.features.codecompare.decompile; import java.util.ArrayList; import java.util.HashSet; import ghidra.app.decompiler.*; import ghidra.app.decompiler.component.DecompileData; -import ghidra.codecompare.graphanalysis.Pinning; -import ghidra.codecompare.graphanalysis.TokenBin; +import ghidra.features.codecompare.graphanalysis.Pinning; +import ghidra.features.codecompare.graphanalysis.TokenBin; import ghidra.program.model.pcode.HighFunction; import ghidra.util.exception.CancelledException; import ghidra.util.task.TaskMonitor; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DecompilerCodeComparisonOptions.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DecompilerCodeComparisonOptions.java similarity index 99% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DecompilerCodeComparisonOptions.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DecompilerCodeComparisonOptions.java index 9f4d6b08ca..19bdc71ee1 100644 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DecompilerCodeComparisonOptions.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DecompilerCodeComparisonOptions.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.decompile; +package ghidra.features.codecompare.decompile; import java.awt.Color; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DecompilerCodeComparisonPanel.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DecompilerCodeComparisonPanel.java similarity index 98% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DecompilerCodeComparisonPanel.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DecompilerCodeComparisonPanel.java index ba96d5ea2e..e2443c745a 100644 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DecompilerCodeComparisonPanel.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DecompilerCodeComparisonPanel.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.decompile; +package ghidra.features.codecompare.decompile; import static ghidra.util.datastruct.Duo.Side.*; @@ -32,9 +32,8 @@ import docking.options.OptionsService; import generic.theme.GIcon; import ghidra.app.decompiler.component.DecompileData; import ghidra.app.decompiler.component.DecompilerPanel; -import ghidra.app.util.viewer.util.CodeComparisonPanel; -import ghidra.codecompare.DiffClangHighlightController; -import ghidra.codecompare.graphanalysis.TokenBin; +import ghidra.features.base.codecompare.panel.CodeComparisonPanel; +import ghidra.features.codecompare.graphanalysis.TokenBin; import ghidra.framework.plugintool.PluginTool; import ghidra.program.model.listing.Function; import ghidra.program.model.listing.Program; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DecompilerDiffViewFindAction.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DecompilerDiffViewFindAction.java similarity index 98% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DecompilerDiffViewFindAction.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DecompilerDiffViewFindAction.java index 5e43233797..030b0c34aa 100644 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DecompilerDiffViewFindAction.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DecompilerDiffViewFindAction.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.decompile; +package ghidra.features.codecompare.decompile; import static ghidra.util.datastruct.Duo.Side.*; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DetermineDecompilerDifferencesTask.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DetermineDecompilerDifferencesTask.java similarity index 95% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DetermineDecompilerDifferencesTask.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DetermineDecompilerDifferencesTask.java index 11615891c7..f243d1774b 100755 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DetermineDecompilerDifferencesTask.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DetermineDecompilerDifferencesTask.java @@ -13,14 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.decompile; +package ghidra.features.codecompare.decompile; import java.util.List; import java.util.Set; import ghidra.app.decompiler.ClangToken; -import ghidra.codecompare.DiffClangHighlightController; -import ghidra.codecompare.graphanalysis.TokenBin; +import ghidra.features.codecompare.graphanalysis.TokenBin; import ghidra.util.exception.CancelledException; import ghidra.util.task.Task; import ghidra.util.task.TaskMonitor; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/DiffClangHighlightController.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DiffClangHighlightController.java similarity index 98% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/DiffClangHighlightController.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DiffClangHighlightController.java index 9582c4b08c..8022db49b1 100755 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/DiffClangHighlightController.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DiffClangHighlightController.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare; +package ghidra.features.codecompare.decompile; import java.awt.Color; import java.util.*; @@ -26,8 +26,7 @@ import generic.theme.GColor; import ghidra.app.decompiler.ClangSyntaxToken; import ghidra.app.decompiler.ClangToken; import ghidra.app.decompiler.component.*; -import ghidra.codecompare.decompile.DecompilerCodeComparisonOptions; -import ghidra.codecompare.graphanalysis.TokenBin; +import ghidra.features.codecompare.graphanalysis.TokenBin; import ghidra.util.ColorUtils; import ghidra.util.SystemUtilities; import util.CollectionUtils; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/DiffClangHighlightListener.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DiffClangHighlightListener.java similarity index 89% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/DiffClangHighlightListener.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DiffClangHighlightListener.java index 54092e85e1..3aeae375c7 100755 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/DiffClangHighlightListener.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DiffClangHighlightListener.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare; +package ghidra.features.codecompare.decompile; import ghidra.app.decompiler.ClangToken; -import ghidra.codecompare.graphanalysis.TokenBin; +import ghidra.features.codecompare.graphanalysis.TokenBin; public interface DiffClangHighlightListener { diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DualDecompilerActionContext.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DualDecompilerActionContext.java similarity index 93% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DualDecompilerActionContext.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DualDecompilerActionContext.java index f3939e00ef..4c1e5b22c8 100644 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DualDecompilerActionContext.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DualDecompilerActionContext.java @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.decompile; +package ghidra.features.codecompare.decompile; import java.awt.Component; import docking.ComponentProvider; import ghidra.app.context.RestrictedAddressSetContext; -import ghidra.app.util.viewer.util.CodeComparisonActionContext; +import ghidra.features.base.codecompare.panel.CodeComparisonActionContext; /** * Action context for a dual decompiler panel. diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DualDecompilerFieldPanelCoordinator.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DualDecompilerFieldPanelCoordinator.java similarity index 96% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DualDecompilerFieldPanelCoordinator.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DualDecompilerFieldPanelCoordinator.java index de169cb176..3c569b6dee 100644 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/DualDecompilerFieldPanelCoordinator.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/DualDecompilerFieldPanelCoordinator.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.decompile; +package ghidra.features.codecompare.decompile; import static ghidra.util.datastruct.Duo.Side.*; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/TokenPair.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/TokenPair.java similarity index 93% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/TokenPair.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/TokenPair.java index 4b917f038c..e08a76075f 100644 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/decompile/TokenPair.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/decompile/TokenPair.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.decompile; +package ghidra.features.codecompare.decompile; import ghidra.app.decompiler.ClangToken; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/CtrlGraph.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/CtrlGraph.java similarity index 96% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/CtrlGraph.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/CtrlGraph.java index 8cfe8006ec..2bcb370761 100755 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/CtrlGraph.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/CtrlGraph.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.graphanalysis; +package ghidra.features.codecompare.graphanalysis; import java.util.*; -import ghidra.codecompare.graphanalysis.Pinning.Side; +import ghidra.features.codecompare.graphanalysis.Pinning.Side; import ghidra.program.model.pcode.HighFunction; import ghidra.program.model.pcode.PcodeBlockBasic; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/CtrlNGram.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/CtrlNGram.java similarity index 98% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/CtrlNGram.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/CtrlNGram.java index 0a14e41c28..79ffb3b7a9 100755 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/CtrlNGram.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/CtrlNGram.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.graphanalysis; +package ghidra.features.codecompare.graphanalysis; /** * N-gram hash on the control-flow graph rooted at specific node {@link CtrlVertex}. diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/CtrlVertex.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/CtrlVertex.java similarity index 99% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/CtrlVertex.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/CtrlVertex.java index 47013b2325..ed09bccbd8 100755 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/CtrlVertex.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/CtrlVertex.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.graphanalysis; +package ghidra.features.codecompare.graphanalysis; import java.util.ArrayList; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/DataGraph.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/DataGraph.java similarity index 99% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/DataGraph.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/DataGraph.java index 97b69d556e..801c5869d4 100755 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/DataGraph.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/DataGraph.java @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.graphanalysis; +package ghidra.features.codecompare.graphanalysis; import java.io.IOException; import java.io.Writer; import java.util.*; -import ghidra.codecompare.graphanalysis.Pinning.Side; +import ghidra.features.codecompare.graphanalysis.Pinning.Side; import ghidra.program.model.pcode.*; /** diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/DataNGram.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/DataNGram.java similarity index 98% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/DataNGram.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/DataNGram.java index 77967325bf..3aafc312bd 100755 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/DataNGram.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/DataNGram.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.graphanalysis; +package ghidra.features.codecompare.graphanalysis; /** * Sortable n-gram hash on the data-flow graph rooted at specific node {@link DataVertex}. diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/DataVertex.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/DataVertex.java similarity index 99% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/DataVertex.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/DataVertex.java index 25c5cc43ba..c07918cf81 100755 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/DataVertex.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/DataVertex.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.graphanalysis; +package ghidra.features.codecompare.graphanalysis; import java.util.ArrayList; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/Pinning.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/Pinning.java similarity index 99% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/Pinning.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/Pinning.java index 4344f648b6..205db313ad 100755 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/Pinning.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/Pinning.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.graphanalysis; +package ghidra.features.codecompare.graphanalysis; import java.io.IOException; import java.io.Writer; diff --git a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/TokenBin.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/TokenBin.java similarity index 98% rename from Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/TokenBin.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/TokenBin.java index 5e60738f97..24de4b2012 100755 --- a/Ghidra/Features/CodeCompare/src/main/java/ghidra/codecompare/graphanalysis/TokenBin.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/graphanalysis/TokenBin.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.codecompare.graphanalysis; +package ghidra.features.codecompare.graphanalysis; import java.util.*; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/FunctionComparisonPlugin.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/plugin/FunctionComparisonPlugin.java similarity index 97% rename from Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/FunctionComparisonPlugin.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/plugin/FunctionComparisonPlugin.java index 87d794f1d2..0ddda5906e 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/FunctionComparisonPlugin.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/plugin/FunctionComparisonPlugin.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.plugin.core.functioncompare; +package ghidra.features.codecompare.plugin; import java.util.*; import java.util.function.Consumer; @@ -25,6 +25,8 @@ import ghidra.app.events.*; import ghidra.app.plugin.PluginCategoryNames; import ghidra.app.plugin.ProgramPlugin; import ghidra.app.services.*; +import ghidra.features.base.codecompare.model.DefaultFunctionComparisonModel; +import ghidra.features.base.codecompare.model.FunctionComparisonModel; import ghidra.framework.model.*; import ghidra.framework.plugintool.PluginInfo; import ghidra.framework.plugintool.PluginTool; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/FunctionComparisonProvider.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/plugin/FunctionComparisonProvider.java similarity index 97% rename from Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/FunctionComparisonProvider.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/plugin/FunctionComparisonProvider.java index b6c01350c6..217fbf9da1 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/FunctionComparisonProvider.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/plugin/FunctionComparisonProvider.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.plugin.core.functioncompare; +package ghidra.features.codecompare.plugin; import static ghidra.util.datastruct.Duo.Side.*; @@ -34,9 +34,11 @@ import generic.theme.GIcon; import ghidra.app.plugin.core.functionwindow.FunctionRowObject; import ghidra.app.plugin.core.functionwindow.FunctionTableModel; import ghidra.app.services.*; -import ghidra.app.util.viewer.listingpanel.ListingCodeComparisonPanel; import ghidra.app.util.viewer.listingpanel.ListingPanel; -import ghidra.app.util.viewer.util.CodeComparisonPanel; +import ghidra.features.base.codecompare.listing.ListingCodeComparisonPanel; +import ghidra.features.base.codecompare.model.*; +import ghidra.features.base.codecompare.panel.CodeComparisonPanel; +import ghidra.features.base.codecompare.panel.FunctionComparisonPanel; import ghidra.framework.options.SaveState; import ghidra.framework.plugintool.ComponentProviderAdapter; import ghidra.program.model.listing.Function; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/FunctionComparisonProviderListener.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/plugin/FunctionComparisonProviderListener.java similarity index 95% rename from Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/FunctionComparisonProviderListener.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/plugin/FunctionComparisonProviderListener.java index 449b9a5f87..4ee23b1b1a 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/FunctionComparisonProviderListener.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/plugin/FunctionComparisonProviderListener.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.plugin.core.functioncompare; +package ghidra.features.codecompare.plugin; /** * Allows subscribers to register for function comparison provider changes diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/MultiFunctionComparisonPanel.java b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/plugin/MultiFunctionComparisonPanel.java similarity index 95% rename from Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/MultiFunctionComparisonPanel.java rename to Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/plugin/MultiFunctionComparisonPanel.java index 84dca8805d..89ac1ace8b 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/MultiFunctionComparisonPanel.java +++ b/Ghidra/Features/CodeCompare/src/main/java/ghidra/features/codecompare/plugin/MultiFunctionComparisonPanel.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.plugin.core.functioncompare; +package ghidra.features.codecompare.plugin; import static ghidra.util.datastruct.Duo.Side.*; @@ -23,8 +23,10 @@ import java.awt.event.ItemListener; import javax.swing.*; -import ghidra.app.services.FunctionComparisonModel; -import ghidra.app.util.viewer.util.CodeComparisonPanel; +import ghidra.features.base.codecompare.model.FunctionComparisonModel; +import ghidra.features.base.codecompare.model.FunctionComparisonModelListener; +import ghidra.features.base.codecompare.panel.CodeComparisonPanel; +import ghidra.features.base.codecompare.panel.FunctionComparisonPanel; import ghidra.framework.plugintool.PluginTool; import ghidra.program.model.listing.Function; import ghidra.util.datastruct.Duo; diff --git a/Ghidra/Features/Base/src/test/java/ghidra/app/plugin/core/functioncompare/CompareFunctionsProviderTest.java b/Ghidra/Features/CodeCompare/src/main/test/ghidra/features/codecompare/plugin/CompareFunctionsProviderTest.java similarity index 97% rename from Ghidra/Features/Base/src/test/java/ghidra/app/plugin/core/functioncompare/CompareFunctionsProviderTest.java rename to Ghidra/Features/CodeCompare/src/main/test/ghidra/features/codecompare/plugin/CompareFunctionsProviderTest.java index cbf6985bd1..691fec0c9f 100644 --- a/Ghidra/Features/Base/src/test/java/ghidra/app/plugin/core/functioncompare/CompareFunctionsProviderTest.java +++ b/Ghidra/Features/CodeCompare/src/main/test/ghidra/features/codecompare/plugin/CompareFunctionsProviderTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.plugin.core.functioncompare; +package ghidra.features.codecompare.plugin; import static ghidra.util.datastruct.Duo.Side.*; import static org.junit.Assert.*; @@ -33,8 +33,10 @@ import docking.widgets.dialogs.TableSelectionDialog; import docking.widgets.table.GFilterTable; import ghidra.app.plugin.core.codebrowser.CodeBrowserPlugin; import ghidra.app.plugin.core.function.FunctionPlugin; -import ghidra.app.services.FunctionComparisonModel; -import ghidra.app.services.MatchedFunctionComparisonModel; +import ghidra.features.base.codecompare.model.FunctionComparisonModel; +import ghidra.features.base.codecompare.model.MatchedFunctionComparisonModel; +import ghidra.features.base.codecompare.panel.FunctionComparisonPanel; +import ghidra.features.codecompare.plugin.*; import ghidra.program.database.ProgramBuilder; import ghidra.program.model.address.Address; import ghidra.program.model.data.ByteDataType; diff --git a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/duallisting/VTDualListingDragNDropHandler.java b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/duallisting/VTDualListingDragNDropHandler.java index be29631133..dbeeb83e46 100644 --- a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/duallisting/VTDualListingDragNDropHandler.java +++ b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/duallisting/VTDualListingDragNDropHandler.java @@ -24,12 +24,12 @@ import java.awt.dnd.*; import java.util.ArrayList; import docking.dnd.*; -import ghidra.app.util.viewer.listingpanel.ListingCodeComparisonPanel; import ghidra.app.util.viewer.listingpanel.ListingPanel; import ghidra.feature.vt.api.main.*; import ghidra.feature.vt.api.markuptype.VTMarkupType; import ghidra.feature.vt.gui.plugin.VTController; import ghidra.feature.vt.gui.task.ApplyMarkupAtDestinationAddressTask; +import ghidra.features.base.codecompare.listing.ListingCodeComparisonPanel; import ghidra.program.model.address.Address; import ghidra.program.util.ProgramLocation; import ghidra.util.Msg; diff --git a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/duallisting/VTListingContext.java b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/duallisting/VTListingContext.java index edaff79d26..db7fe8a7af 100644 --- a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/duallisting/VTListingContext.java +++ b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/duallisting/VTListingContext.java @@ -18,8 +18,8 @@ package ghidra.feature.vt.gui.duallisting; import docking.ComponentProvider; import ghidra.app.context.ListingActionContext; import ghidra.app.nav.Navigatable; -import ghidra.app.util.viewer.util.CodeComparisonPanel; -import ghidra.app.util.viewer.util.CodeComparisonPanelActionContext; +import ghidra.features.base.codecompare.panel.CodeComparisonPanel; +import ghidra.features.base.codecompare.panel.CodeComparisonPanelActionContext; /** * Action context for a version tracking listing. diff --git a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/duallisting/VTListingNavigator.java b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/duallisting/VTListingNavigator.java index f54883be0e..934c82ac9b 100644 --- a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/duallisting/VTListingNavigator.java +++ b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/duallisting/VTListingNavigator.java @@ -19,8 +19,8 @@ import javax.swing.Icon; import ghidra.app.nav.*; import ghidra.app.util.ListingHighlightProvider; -import ghidra.app.util.viewer.listingpanel.ListingCodeComparisonPanel; import ghidra.app.util.viewer.listingpanel.ListingPanel; +import ghidra.features.base.codecompare.listing.ListingCodeComparisonPanel; import ghidra.program.model.listing.Program; import ghidra.program.util.ProgramLocation; import ghidra.program.util.ProgramSelection; diff --git a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/plugin/VTPlugin.java b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/plugin/VTPlugin.java index e76f605c50..584b27f9b9 100644 --- a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/plugin/VTPlugin.java +++ b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/plugin/VTPlugin.java @@ -150,8 +150,7 @@ public class VTPlugin extends Plugin { private void addCustomPlugins() { - List names = new ArrayList<>( - List.of("ghidra.app.plugin.core.functioncompare.FunctionComparisonPlugin")); + List names = new ArrayList<>(List.of("ghidra.features.codecompare.plugin")); List plugins = tool.getManagedPlugins(); Set existingNames = plugins.stream().map(c -> c.getName()).collect(Collectors.toSet()); diff --git a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/functionassociation/VTFunctionAssociationProvider.java b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/functionassociation/VTFunctionAssociationProvider.java index e8fe334066..3a8f1cf216 100644 --- a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/functionassociation/VTFunctionAssociationProvider.java +++ b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/functionassociation/VTFunctionAssociationProvider.java @@ -39,8 +39,6 @@ import docking.widgets.label.GDLabel; import docking.widgets.table.threaded.ThreadedTableModel; import generic.theme.GIcon; import generic.theme.GThemeDefaults.Colors; -import ghidra.app.plugin.core.functioncompare.FunctionComparisonPanel; -import ghidra.app.util.viewer.listingpanel.ListingCodeComparisonPanel; import ghidra.app.util.viewer.listingpanel.ListingPanel; import ghidra.feature.vt.api.db.DeletedMatch; import ghidra.feature.vt.api.impl.VTEvent; @@ -50,6 +48,8 @@ import ghidra.feature.vt.gui.actions.*; import ghidra.feature.vt.gui.duallisting.VTListingNavigator; import ghidra.feature.vt.gui.plugin.*; import ghidra.feature.vt.gui.util.MatchInfo; +import ghidra.features.base.codecompare.listing.ListingCodeComparisonPanel; +import ghidra.features.base.codecompare.panel.FunctionComparisonPanel; import ghidra.framework.model.*; import ghidra.framework.options.Options; import ghidra.framework.options.SaveState; diff --git a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/markuptable/VTMarkupItemContext.java b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/markuptable/VTMarkupItemContext.java index 82851a9a4b..9ee05cfb95 100644 --- a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/markuptable/VTMarkupItemContext.java +++ b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/markuptable/VTMarkupItemContext.java @@ -18,9 +18,9 @@ package ghidra.feature.vt.gui.provider.markuptable; import java.util.List; import docking.DefaultActionContext; -import ghidra.app.util.viewer.util.CodeComparisonPanel; -import ghidra.app.util.viewer.util.CodeComparisonPanelActionContext; import ghidra.feature.vt.api.main.VTMarkupItem; +import ghidra.features.base.codecompare.panel.CodeComparisonPanel; +import ghidra.features.base.codecompare.panel.CodeComparisonPanelActionContext; /** * Action context for the version tracking markup item provider. diff --git a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/markuptable/VTMarkupItemsTableProvider.java b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/markuptable/VTMarkupItemsTableProvider.java index 229504b07c..fe90d42f43 100644 --- a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/markuptable/VTMarkupItemsTableProvider.java +++ b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/markuptable/VTMarkupItemsTableProvider.java @@ -39,9 +39,8 @@ import docking.widgets.table.GTable; import docking.widgets.table.RowObjectTableModel; import docking.widgets.table.threaded.ThreadedTableModel; import generic.theme.GIcon; -import ghidra.app.plugin.core.functioncompare.FunctionComparisonPanel; -import ghidra.app.util.viewer.listingpanel.*; -import ghidra.app.util.viewer.util.CodeComparisonPanel; +import ghidra.app.util.viewer.listingpanel.ListingPanel; +import ghidra.app.util.viewer.listingpanel.ProgramLocationListener; import ghidra.feature.vt.api.main.*; import ghidra.feature.vt.api.markuptype.VTMarkupType; import ghidra.feature.vt.gui.actions.*; @@ -52,6 +51,9 @@ import ghidra.feature.vt.gui.filters.Filter.FilterEditingStatus; import ghidra.feature.vt.gui.plugin.*; import ghidra.feature.vt.gui.provider.markuptable.VTMarkupItemsTableModel.AppliedDestinationAddressTableColumn; import ghidra.feature.vt.gui.util.*; +import ghidra.features.base.codecompare.listing.ListingCodeComparisonPanel; +import ghidra.features.base.codecompare.panel.CodeComparisonPanel; +import ghidra.features.base.codecompare.panel.FunctionComparisonPanel; import ghidra.framework.model.DomainObjectChangedEvent; import ghidra.framework.options.Options; import ghidra.framework.options.SaveState; diff --git a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/matchtable/VTMatchTableProvider.java b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/matchtable/VTMatchTableProvider.java index 1459b5ecc3..fff753a973 100644 --- a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/matchtable/VTMatchTableProvider.java +++ b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/matchtable/VTMatchTableProvider.java @@ -37,7 +37,6 @@ import docking.widgets.table.*; import docking.widgets.table.threaded.ThreadedTableModel; import generic.theme.GIcon; import ghidra.app.services.FunctionComparisonService; -import ghidra.app.services.MatchedFunctionComparisonModel; import ghidra.feature.vt.api.impl.VTEvent; import ghidra.feature.vt.api.impl.VersionTrackingChangeRecord; import ghidra.feature.vt.api.main.*; @@ -48,6 +47,7 @@ import ghidra.feature.vt.gui.filters.Filter.FilterEditingStatus; import ghidra.feature.vt.gui.plugin.*; import ghidra.feature.vt.gui.util.*; import ghidra.feature.vt.gui.util.AbstractVTMatchTableModel.*; +import ghidra.features.base.codecompare.model.MatchedFunctionComparisonModel; import ghidra.framework.model.*; import ghidra.framework.options.Options; import ghidra.framework.options.SaveState; diff --git a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/onetomany/VTMatchOneToManyTableProvider.java b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/onetomany/VTMatchOneToManyTableProvider.java index 41a245b539..a03a5b6ec9 100644 --- a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/onetomany/VTMatchOneToManyTableProvider.java +++ b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/provider/onetomany/VTMatchOneToManyTableProvider.java @@ -34,7 +34,6 @@ import docking.widgets.table.threaded.ThreadedTableModel; import generic.theme.GColor; import generic.theme.GIcon; import ghidra.app.services.FunctionComparisonService; -import ghidra.app.services.MatchedFunctionComparisonModel; import ghidra.feature.vt.api.impl.VTEvent; import ghidra.feature.vt.api.main.*; import ghidra.feature.vt.gui.actions.*; @@ -44,6 +43,7 @@ import ghidra.feature.vt.gui.plugin.*; import ghidra.feature.vt.gui.provider.markuptable.DisplayableListingAddress; import ghidra.feature.vt.gui.provider.matchtable.MatchTableRenderer; import ghidra.feature.vt.gui.util.AbstractVTMatchTableModel.StatusTableColumn; +import ghidra.features.base.codecompare.model.MatchedFunctionComparisonModel; import ghidra.feature.vt.gui.util.MatchInfo; import ghidra.feature.vt.gui.util.MatchStatusRenderer; import ghidra.framework.model.*; diff --git a/Ghidra/Features/VersionTracking/src/screen/java/help/screenshot/VersionTrackingPluginScreenShots.java b/Ghidra/Features/VersionTracking/src/screen/java/help/screenshot/VersionTrackingPluginScreenShots.java index e0963f3a86..af86e5ca10 100644 --- a/Ghidra/Features/VersionTracking/src/screen/java/help/screenshot/VersionTrackingPluginScreenShots.java +++ b/Ghidra/Features/VersionTracking/src/screen/java/help/screenshot/VersionTrackingPluginScreenShots.java @@ -34,7 +34,6 @@ import docking.action.ToggleDockingAction; import docking.options.editor.OptionsDialog; import docking.options.editor.OptionsPanel; import docking.widgets.tree.GTree; -import ghidra.app.util.viewer.listingpanel.ListingCodeComparisonPanel; import ghidra.feature.vt.api.correlator.program.ExactMatchInstructionsProgramCorrelatorFactory; import ghidra.feature.vt.api.correlator.program.SymbolNameProgramCorrelatorFactory; import ghidra.feature.vt.api.main.*; @@ -53,6 +52,7 @@ import ghidra.feature.vt.gui.provider.onetomany.VTMatchSourceTableProvider; import ghidra.feature.vt.gui.task.*; import ghidra.feature.vt.gui.util.MatchInfo; import ghidra.feature.vt.gui.wizard.*; +import ghidra.features.base.codecompare.listing.ListingCodeComparisonPanel; import ghidra.framework.main.DataTreeDialog; import ghidra.framework.main.datatree.DataTree; import ghidra.framework.main.datatree.ProjectDataTreePanel; diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/TitledPanel.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/TitledPanel.java similarity index 98% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/TitledPanel.java rename to Ghidra/Framework/Docking/src/main/java/docking/widgets/TitledPanel.java index 92b05048ac..740e5a9db5 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/TitledPanel.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/TitledPanel.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package ghidra.app.util.viewer.util; +package docking.widgets; import java.awt.BorderLayout; import java.awt.Dimension; diff --git a/Ghidra/Test/IntegrationTest/src/screen/java/help/screenshot/FunctionComparisonScreenShots.java b/Ghidra/Test/IntegrationTest/src/screen/java/help/screenshot/FunctionComparisonScreenShots.java index fac7c82046..664f1f1c13 100644 --- a/Ghidra/Test/IntegrationTest/src/screen/java/help/screenshot/FunctionComparisonScreenShots.java +++ b/Ghidra/Test/IntegrationTest/src/screen/java/help/screenshot/FunctionComparisonScreenShots.java @@ -29,9 +29,10 @@ import docking.widgets.dialogs.TableSelectionDialog; import docking.widgets.table.GFilterTable; import docking.widgets.table.GTable; import ghidra.app.cmd.disassemble.DisassembleCommand; -import ghidra.app.plugin.core.functioncompare.*; -import ghidra.app.util.viewer.listingpanel.ListingCodeComparisonPanel; import ghidra.app.util.viewer.listingpanel.ListingPanel; +import ghidra.features.base.codecompare.listing.ListingCodeComparisonPanel; +import ghidra.features.base.codecompare.panel.FunctionComparisonPanel; +import ghidra.features.codecompare.plugin.*; import ghidra.program.model.address.Address; import ghidra.program.model.address.AddressSet; import ghidra.program.model.listing.*; diff --git a/Ghidra/Test/IntegrationTest/src/screen/java/help/screenshot/RepositoryScreenShots.java b/Ghidra/Test/IntegrationTest/src/screen/java/help/screenshot/RepositoryScreenShots.java index 4f16f507b4..50cd614ce6 100644 --- a/Ghidra/Test/IntegrationTest/src/screen/java/help/screenshot/RepositoryScreenShots.java +++ b/Ghidra/Test/IntegrationTest/src/screen/java/help/screenshot/RepositoryScreenShots.java @@ -26,6 +26,7 @@ import javax.swing.border.TitledBorder; import org.junit.*; +import docking.widgets.TitledPanel; import docking.widgets.indexedscrollpane.IndexedScrollPane; import generic.test.TestUtils; import generic.theme.GThemeDefaults.Colors.Palette; @@ -34,7 +35,6 @@ import ghidra.app.merge.*; import ghidra.app.merge.listing.*; import ghidra.app.merge.tool.ListingMergePanel; import ghidra.app.util.viewer.listingpanel.ListingPanel; -import ghidra.app.util.viewer.util.TitledPanel; import ghidra.framework.main.FrontEndTool; import ghidra.framework.model.DomainFile; import ghidra.framework.model.DomainFolder; diff --git a/Ghidra/Test/IntegrationTest/src/test.slow/java/ghidra/app/plugin/compare/CompareFunctionsDecompilerViewTest.java b/Ghidra/Test/IntegrationTest/src/test.slow/java/ghidra/app/plugin/compare/CompareFunctionsDecompilerViewTest.java index cc22a7b198..ad7ea9c94d 100644 --- a/Ghidra/Test/IntegrationTest/src/test.slow/java/ghidra/app/plugin/compare/CompareFunctionsDecompilerViewTest.java +++ b/Ghidra/Test/IntegrationTest/src/test.slow/java/ghidra/app/plugin/compare/CompareFunctionsDecompilerViewTest.java @@ -23,11 +23,11 @@ import java.util.Set; import org.junit.*; -import ghidra.app.plugin.core.functioncompare.FunctionComparisonPlugin; -import ghidra.app.plugin.core.functioncompare.FunctionComparisonProvider; -import ghidra.app.services.FunctionComparisonModel; -import ghidra.codecompare.decompile.CDisplay; -import ghidra.codecompare.decompile.DecompilerCodeComparisonPanel; +import ghidra.features.base.codecompare.model.FunctionComparisonModel; +import ghidra.features.codecompare.decompile.CDisplay; +import ghidra.features.codecompare.decompile.DecompilerCodeComparisonPanel; +import ghidra.features.codecompare.plugin.FunctionComparisonPlugin; +import ghidra.features.codecompare.plugin.FunctionComparisonProvider; import ghidra.program.model.address.Address; import ghidra.program.model.listing.*; import ghidra.test.*;