Commit 6c9ced7
committed
Prevent an access violation. The reproduction step for the access violation in Access is as follows:
* With an existing Access file containing a VBA project, decompile, compile, and compact & repair the Access file.
* Open Access, load the Access file, open VBIDE
* As soon as Rubberduck finishes loading and the parse button is available, hit it
This usually will yield an access violation when executing IVBEProject.CompileProject().
To avoid this from happening, we need to call IVBEProject.Placeholder3(). That seems to prevent the access violation. Using a known method such as GetCompilationArgs() does not seem to work in preventing the access violation. Nor does pumping the message pump using UiDispatcher.FlushMessageQueue() nor ComMessagePumper.PumpMessage(). Placeholder3() seems to have no permanent side effect.1 parent c853e05 commit 6c9ced7
File tree
1 file changed
+20
-0
lines changed- Rubberduck.VBEEditor/ComManagement/TypeLibs
1 file changed
+20
-0
lines changedLines changed: 20 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
66 | 67 | | |
67 | 68 | | |
68 | 69 | | |
| 70 | + | |
69 | 71 | | |
70 | 72 | | |
71 | 73 | | |
| |||
87 | 89 | | |
88 | 90 | | |
89 | 91 | | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
90 | 110 | | |
91 | 111 | | |
92 | 112 | | |
| |||
0 commit comments