- vm = (org.xwt.mips.Runtime)Class.forName("org.ibex.util.MIPSApps").newInstance();
- int baseAddr = vm.sbrk(fontstream.length);
- vm.copyout(fontstream, baseAddr, fontstream.length);
- vm.setUserInfo(0, baseAddr);
- vm.setUserInfo(1, fontstream.length);
- vm.start(new String[]{ "freetype" });
- vm.execute();
- if(vm.getState() == org.xwt.mips.Runtime.DONE) throw new Error("Freetype VM exited: " + vm.exitStatus());
+ rt.free(loadedStreamAddr);
+ loadedStreamAddr = rt.xmalloc(fontstream.length);
+ rt.copyout(fontstream, loadedStreamAddr, fontstream.length);
+ if(rt.call("load_font", loadedStreamAddr, fontstream.length) != 0)
+ throw new RuntimeException("load_font failed"); // FEATURE: better error
+ rtCheck();
+ loadedStream = res;