[graalvm-users] pass java object to llvm function
Darrell Schiebel
darrell at schiebel.us
Thu Jan 21 08:42:53 PST 2021
Beautiful, thanks very much Lukas!
On Thu, Jan 21, 2021 at 9:11 AM Lukas Stadler <lukas.stadler at oracle.com>
wrote:
> 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/
>
> 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/aefb17ba/attachment.html
More information about the GraalVM-Users
mailing list