Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Loading/unloading DLL #5

Open
solodon4 opened this issue Oct 31, 2014 · 0 comments
Open

Loading/unloading DLL #5

solodon4 opened this issue Oct 31, 2014 · 0 comments
Assignees
Labels

Comments

@solodon4
Copy link
Owner

Robert suggested a plausible scenario today that might lead to invalid dispatch and should be considered when designing language solution:

  1. Dll A is loaded
  2. Classes from Dll A pass through a type switch and get memoized there
  3. Dll A is unloaded
  4. Dll B is loaded into the same physical address as Dll A was occupying
  5. Some of v-tables in Dll B might be in the same spots as others from Dll A
  6. If any of these vtbl pointers from Dll B now go through the same typeswitch, the typeswitch will incorrectly assume that it has already seen that vtbl-pointer.

To avoid this in language solution, we might need to remove vtbl-pointers from vtbl-map when Dll A is unloaded. Would also be interesting to see how often this may happen in practice with something like COM.

@solodon4 solodon4 added the bug label Nov 25, 2014
@solodon4 solodon4 self-assigned this Dec 17, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant