[graalvm-users] pass java object to llvm function
Lukas Stadler
lukas.stadler at oracle.com
Thu Jan 21 06:11:25 PST 2021
Yes, passing Java classes to the LLVM printPoint function works.
Using the “cpart.so” file from the JavaScript example, it could look like this:
import java.io.*;
import org.graalvm.polyglot.*;
class Polyglot {
public static class Point {
public int x;
public int y;
}
public static void main(String[] args) throws IOException {
Context polyglot = Context.newBuilder().allowAllAccess(true).build();
File file = new File("cpart.so");
Source source = Source.newBuilder("llvm", file).build();
Value cpart = polyglot.eval(source);
Value printPoint = cpart.getMember("printPoint");
printPoint.execute(new Point());
}
}
$ bin/javac Polyglot.java
$ bin/java Polyglot
Point<0.000000,0.000000>
Best,
Lukas
> On 21.01.2021, at 04:40, Darrell Schiebel <darrell at schiebel.us> wrote:
>
> I am trying to reproduce the JavaScript example at:
> https://www.graalvm.org/reference-manual/llvm/Interoperability/ <https://www.graalvm.org/reference-manual/llvm/Interoperability/>
> using Java instead of JavaScript. In general it is straightforward, but I'm having trouble passing a Java object to a C++ function to implement the equivalent of:
>
> // Additionally, pass a JS object to a native function
> cpart.printPoint({x: 17, y: 42});
>
> Is it possible to pass a Point object declared and instantiated in Java to the LLVM printPoint function?
>
> thanks,
> Darrell
> _______________________________________________
> GraalVM-Users mailing list
> GraalVM-Users at oss.oracle.com
> https://oss.oracle.com/mailman/listinfo/graalvm-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://oss.oracle.com/pipermail/graalvm-users/attachments/20210121/6f77e0cb/attachment.html
More information about the GraalVM-Users
mailing list