[libbluray-devel] BDJLoader: do not re-use AppProxy and XletContext when xlet is restarted.
hpi1
git at videolan.org
Thu Jan 16 20:37:54 CET 2014
libbluray | branch: master | hpi1 <hpi1 at anonymous.org> | Wed Jan 15 10:40:35 2014 +0200| [fc3ec607e22f66f2cd46a305e820b052676b924c] | committer: hpi1
BDJLoader: do not re-use AppProxy and XletContext when xlet is restarted.
Fixes issues with unregistered callbacks, Ixc bindings etc.
> http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=fc3ec607e22f66f2cd46a305e820b052676b924c
---
src/libbluray/bdj/java/org/videolan/BDJLoader.java | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/src/libbluray/bdj/java/org/videolan/BDJLoader.java b/src/libbluray/bdj/java/org/videolan/BDJLoader.java
index cb50ac9..0b71b7a 100644
--- a/src/libbluray/bdj/java/org/videolan/BDJLoader.java
+++ b/src/libbluray/bdj/java/org/videolan/BDJLoader.java
@@ -126,16 +126,22 @@ public class BDJLoader {
for (int i = 0; i < appTable.length; i++) {
if (id.equals(appTable[i].getIdentifier()) &&
entry.getInitialClass().equals(appTable[i].getInitialClass())) {
- if (restart && appTable[i].getIsServiceBound())
+ if (restart && appTable[i].getIsServiceBound()) {
+ logger.info("Stopping xlet " + appTable[i].getInitialClass() + " (for restart)");
proxy.stop(true);
- proxy.getXletContext().update(appTable[i], bdjo.getAppCaches());
- proxys[i] = proxy;
- proxy = null;
+ } else {
+ logger.info("Keeping xlet " + appTable[i].getInitialClass());
+ proxy.getXletContext().update(appTable[i], bdjo.getAppCaches());
+ proxys[i] = proxy;
+ proxy = null;
+ }
break;
}
}
- if (proxy != null)
+ if (proxy != null) {
+ logger.info("Terminating xlet " + entry.getInitialClass());
proxy.release();
+ }
}
// start bdj window
More information about the libbluray-devel
mailing list