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

Feature/fix package #9

Merged
merged 4 commits into from
Jun 22, 2019

Conversation

Erhannis
Copy link

There's a few fixes here. Each commit addressed one issue.

  1. ( class.getPackage() returns null #5 ) Classes should now be able to call getPackage() and receive a Package. I'm not sure it'll be sufficient for all cases, such as when the caller is trying to get a Manifest, but it at least can return a package name.
  2. ( HashMap null key crashes program #7 ) You should now be able to insert a null value into a HashMap without it crashing.
  3. ( Deadlock D vs DebugifyingClassLoader #8 ) D and DebugifyingClassLoader shouldn't deadlock anymore, at least not in the way that they did. The fix is pretty ugly, though, and should be looked at.

…). It probably won't work for things looking for a manifest, and it may have problems with reflection; not sure.
…it's awful. (more:)

DebugifyingClassLoader (which is locked when called), in calling debugifyClass, locked D.class.  D.class would lock on itself, and sometimes call (Class).getFields(), which would attempt to lock the DebugifyingClassLoader, causing deadlock.  I replaced most of D's synchronization flags with first syncing on the DebugifyingClassLoader, then on D.
@madhephaestus madhephaestus merged commit e8eb588 into OmniscientDebugger:master Jun 22, 2019
@madhephaestus
Copy link
Member

Great Im glad you are taking an interest!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants