Skip to content

Commit bfd6a95

Browse files
authored
Merge pull request #4284 from mansellan/4280
Quick hack to fix VB6 crash on certain project types
2 parents 00e0c4f + 7afb435 commit bfd6a95

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

Rubberduck.Main/Root/RubberduckIoCInstaller.cs

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,11 @@ private void RegisterParseTreeInspections(IWindsorContainer container, Assembly[
339339

340340
private void RegisterRubberduckMenu(IWindsorContainer container)
341341
{
342-
var location = _addin.CommandBarLocations[CommandBarSite.MenuBar];
342+
if (!_addin.CommandBarLocations.TryGetValue(CommandBarSite.MenuBar, out var location))
343+
{
344+
return;
345+
}
346+
343347
var controls = MainCommandBarControls(location.ParentId);
344348
var beforeIndex = FindRubberduckMenuInsertionIndex(controls, location.BeforeControlId);
345349
var menuItemTypes = RubberduckMenuItems();
@@ -405,7 +409,11 @@ private ICommandBarControls MainCommandBarControls(int commandBarIndex)
405409

406410
private void RegisterCodePaneContextMenu(IWindsorContainer container)
407411
{
408-
var location = _addin.CommandBarLocations[CommandBarSite.CodeWindow];
412+
if (!_addin.CommandBarLocations.TryGetValue(CommandBarSite.CodeWindow, out var location))
413+
{
414+
return;
415+
}
416+
409417
var controls = MainCommandBarControls(location.ParentId);
410418
var beforeIndex = FindRubberduckMenuInsertionIndex(controls, location.BeforeControlId);
411419
var menuItemTypes = CodePaneContextMenuItems();
@@ -426,7 +434,11 @@ private Type[] CodePaneContextMenuItems()
426434

427435
private void RegisterFormDesignerContextMenu(IWindsorContainer container)
428436
{
429-
var location = _addin.CommandBarLocations[CommandBarSite.MsForm];
437+
if (!_addin.CommandBarLocations.TryGetValue(CommandBarSite.MsForm, out var location))
438+
{
439+
return;
440+
}
441+
430442
var controls = MainCommandBarControls(location.ParentId);
431443
var beforeIndex = FindRubberduckMenuInsertionIndex(controls, location.BeforeControlId);
432444
var menuItemTypes = FormDesignerContextMenuItems();
@@ -444,7 +456,11 @@ private Type[] FormDesignerContextMenuItems()
444456

445457
private void RegisterFormDesignerControlContextMenu(IWindsorContainer container)
446458
{
447-
var location = _addin.CommandBarLocations[CommandBarSite.MsFormControl];
459+
if (!_addin.CommandBarLocations.TryGetValue(CommandBarSite.MsFormControl, out var location))
460+
{
461+
return;
462+
}
463+
448464
var controls = MainCommandBarControls(location.ParentId);
449465
var beforeIndex = FindRubberduckMenuInsertionIndex(controls, location.BeforeControlId);
450466
var menuItemTypes = FormDesignerContextMenuItems();
@@ -453,7 +469,11 @@ private void RegisterFormDesignerControlContextMenu(IWindsorContainer container)
453469

454470
private void RegisterProjectExplorerContextMenu(IWindsorContainer container)
455471
{
456-
var location = _addin.CommandBarLocations[CommandBarSite.ProjectExplorer];
472+
if (!_addin.CommandBarLocations.TryGetValue(CommandBarSite.ProjectExplorer, out var location))
473+
{
474+
return;
475+
}
476+
457477
var controls = MainCommandBarControls(location.ParentId);
458478
var beforeIndex = FindRubberduckMenuInsertionIndex(controls, location.BeforeControlId);
459479
var menuItemTypes = ProjectWindowContextMenuItems();

Rubberduck.VBEditor.VB6/SafeComWrappers/VB/AddIn.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public AddIn(VB.AddIn target, bool rewrapping = false)
3030
{CommandBarSite.MenuBar, new CommandBarLocation(MenuBar, WindowMenu)},
3131
{CommandBarSite.CodeWindow, new CommandBarLocation(CodeWindow, ListProperties)},
3232
{CommandBarSite.ProjectExplorer, new CommandBarLocation(ProjectExplorer, ProjectProperties)},
33-
{CommandBarSite.MsForm, new CommandBarLocation(MsForm, UpdateUserControls)},
33+
// {CommandBarSite.MsForm, new CommandBarLocation(MsForm, UpdateUserControls)}, // FIXME - quick hack for #4280
3434
{CommandBarSite.MsFormControl, new CommandBarLocation(MsFormControl, ViewCode)}
3535
});
3636
}

0 commit comments

Comments
 (0)