projects
/
ldk-java
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #117 from TheBlueMatt/2022-08-fix-npe
[ldk-java]
/
src
/
main
/
java
/
org
/
ldk
/
structs
/
EventHandler.java
diff --git
a/src/main/java/org/ldk/structs/EventHandler.java
b/src/main/java/org/ldk/structs/EventHandler.java
index 7714aa5139eac07fc4db81f5a65b7ee76b72a60e..cb74075277b76454accd94abe5ee800846048820 100644
(file)
--- a/
src/main/java/org/ldk/structs/EventHandler.java
+++ b/
src/main/java/org/ldk/structs/EventHandler.java
@@
-4,6
+4,8
@@
import org.ldk.impl.bindings;
import org.ldk.enums.*;
import org.ldk.util.*;
import java.util.Arrays;
import org.ldk.enums.*;
import org.ldk.util.*;
import java.util.Arrays;
+import java.lang.ref.Reference;
+import javax.annotation.Nullable;
/**
* A trait implemented for objects handling events from [`EventsProvider`].
/**
* A trait implemented for objects handling events from [`EventsProvider`].
@@
-36,8
+38,8
@@
public class EventHandler extends CommonBase {
impl_holder.held = new EventHandler(new bindings.LDKEventHandler() {
@Override public void handle_event(long event) {
Event event_hu_conv = Event.constr_from_ptr(event);
impl_holder.held = new EventHandler(new bindings.LDKEventHandler() {
@Override public void handle_event(long event) {
Event event_hu_conv = Event.constr_from_ptr(event);
- event_hu_conv.ptrs_to.add(this);
arg.handle_event(event_hu_conv);
arg.handle_event(event_hu_conv);
+ Reference.reachabilityFence(arg);
}
});
return impl_holder.held;
}
});
return impl_holder.held;
@@
-48,7
+50,9
@@
public class EventHandler extends CommonBase {
* See [`EventsProvider`] for details that must be considered when implementing this method.
*/
public void handle_event(Event event) {
* See [`EventsProvider`] for details that must be considered when implementing this method.
*/
public void handle_event(Event event) {
- bindings.EventHandler_handle_event(this.ptr, event.ptr);
+ bindings.EventHandler_handle_event(this.ptr, event == null ? 0 : event.ptr);
+ Reference.reachabilityFence(this);
+ Reference.reachabilityFence(event);
}
}
}
}