Update java-gi unibranch
ci/woodpecker/push/docs Pipeline was successful Details
ci/woodpecker/push/woodpecker Pipeline failed Details

This commit is contained in:
Johannes Frohnmeyer 2022-12-19 14:07:37 +01:00
parent 379f02c41c
commit 71faae3b9a
Signed by: Johannes
GPG Key ID: E76429612C2929F4
8 changed files with 31 additions and 63 deletions

View File

@ -1,14 +1,10 @@
package io.gitlab.jfronny.inceptum.gtk.callback; package io.gitlab.jfronny.inceptum.gtk.callback;
import io.github.jwharm.javagi.CallbackGenerator;
import io.github.jwharm.javagi.Interop; import io.github.jwharm.javagi.Interop;
import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.ApiStatus;
import java.lang.foreign.FunctionDescriptor; import java.lang.foreign.*;
import java.lang.foreign.Linker;
import java.lang.foreign.MemoryAddress;
import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
public interface DisposeCallback { public interface DisposeCallback {
void upcall(MemoryAddress pointer); void upcall(MemoryAddress pointer);
@ -16,7 +12,7 @@ public interface DisposeCallback {
@ApiStatus.Internal @ApiStatus.Internal
FunctionDescriptor DESCRIPTOR = FunctionDescriptor.ofVoid(Interop.valueLayout.ADDRESS); FunctionDescriptor DESCRIPTOR = FunctionDescriptor.ofVoid(Interop.valueLayout.ADDRESS);
@ApiStatus.Internal @ApiStatus.Internal
MethodHandle HANDLE = CallbackGenerator.getHandle(MethodHandles.lookup(), DisposeCallback.class, DESCRIPTOR); MethodHandle HANDLE = Interop.getHandle(DisposeCallback.class, DESCRIPTOR);
default MemoryAddress toCallback() { default MemoryAddress toCallback() {
return Linker.nativeLinker().upcallStub(HANDLE.bindTo(this), DESCRIPTOR, Interop.getScope()).address(); return Linker.nativeLinker().upcallStub(HANDLE.bindTo(this), DESCRIPTOR, Interop.getScope()).address();

View File

@ -1,22 +1,17 @@
package io.gitlab.jfronny.inceptum.gtk.callback; package io.gitlab.jfronny.inceptum.gtk.callback;
import io.github.jwharm.javagi.CallbackGenerator;
import io.github.jwharm.javagi.Interop; import io.github.jwharm.javagi.Interop;
import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.ApiStatus;
import java.lang.foreign.Addressable; import java.lang.foreign.*;
import java.lang.foreign.FunctionDescriptor;
import java.lang.foreign.Linker;
import java.lang.foreign.MemoryAddress;
import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
@FunctionalInterface @FunctionalInterface
public interface GetItemCallback { public interface GetItemCallback {
Addressable upcall(MemoryAddress inst, int position); Addressable upcall(MemoryAddress inst, int position);
@ApiStatus.Internal FunctionDescriptor DESCRIPTOR = FunctionDescriptor.of(Interop.valueLayout.ADDRESS, Interop.valueLayout.ADDRESS, Interop.valueLayout.C_INT); @ApiStatus.Internal FunctionDescriptor DESCRIPTOR = FunctionDescriptor.of(Interop.valueLayout.ADDRESS, Interop.valueLayout.ADDRESS, Interop.valueLayout.C_INT);
@ApiStatus.Internal MethodHandle HANDLE = CallbackGenerator.getHandle(MethodHandles.lookup(), GetItemCallback.class, DESCRIPTOR); @ApiStatus.Internal MethodHandle HANDLE = Interop.getHandle(GetItemCallback.class, DESCRIPTOR);
default MemoryAddress toCallback() { default MemoryAddress toCallback() {
return Linker.nativeLinker().upcallStub(HANDLE.bindTo(this), DESCRIPTOR, Interop.getScope()).address(); return Linker.nativeLinker().upcallStub(HANDLE.bindTo(this), DESCRIPTOR, Interop.getScope()).address();

View File

@ -1,14 +1,10 @@
package io.gitlab.jfronny.inceptum.gtk.callback; package io.gitlab.jfronny.inceptum.gtk.callback;
import io.github.jwharm.javagi.CallbackGenerator;
import io.github.jwharm.javagi.Interop; import io.github.jwharm.javagi.Interop;
import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.ApiStatus;
import java.lang.foreign.FunctionDescriptor; import java.lang.foreign.*;
import java.lang.foreign.Linker;
import java.lang.foreign.MemoryAddress;
import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
public interface GetItemTypeCallback { public interface GetItemTypeCallback {
long upcall(MemoryAddress address); long upcall(MemoryAddress address);
@ -16,7 +12,7 @@ public interface GetItemTypeCallback {
@ApiStatus.Internal @ApiStatus.Internal
FunctionDescriptor DESCRIPTOR = FunctionDescriptor.of(Interop.valueLayout.C_LONG, Interop.valueLayout.ADDRESS); FunctionDescriptor DESCRIPTOR = FunctionDescriptor.of(Interop.valueLayout.C_LONG, Interop.valueLayout.ADDRESS);
@ApiStatus.Internal @ApiStatus.Internal
MethodHandle HANDLE = CallbackGenerator.getHandle(MethodHandles.lookup(), GetItemTypeCallback.class, DESCRIPTOR); MethodHandle HANDLE = Interop.getHandle(GetItemTypeCallback.class, DESCRIPTOR);
default MemoryAddress toCallback() { default MemoryAddress toCallback() {
return Linker.nativeLinker().upcallStub(HANDLE.bindTo(this), DESCRIPTOR, Interop.getScope()).address(); return Linker.nativeLinker().upcallStub(HANDLE.bindTo(this), DESCRIPTOR, Interop.getScope()).address();

View File

@ -1,14 +1,10 @@
package io.gitlab.jfronny.inceptum.gtk.callback; package io.gitlab.jfronny.inceptum.gtk.callback;
import io.github.jwharm.javagi.CallbackGenerator;
import io.github.jwharm.javagi.Interop; import io.github.jwharm.javagi.Interop;
import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.ApiStatus;
import java.lang.foreign.FunctionDescriptor; import java.lang.foreign.*;
import java.lang.foreign.Linker;
import java.lang.foreign.MemoryAddress;
import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
public interface GetNItemsCallback { public interface GetNItemsCallback {
int upcall(MemoryAddress inst); int upcall(MemoryAddress inst);
@ -16,7 +12,7 @@ public interface GetNItemsCallback {
@ApiStatus.Internal @ApiStatus.Internal
FunctionDescriptor DESCRIPTOR = FunctionDescriptor.of(Interop.valueLayout.C_INT, Interop.valueLayout.ADDRESS); FunctionDescriptor DESCRIPTOR = FunctionDescriptor.of(Interop.valueLayout.C_INT, Interop.valueLayout.ADDRESS);
@ApiStatus.Internal @ApiStatus.Internal
MethodHandle HANDLE = CallbackGenerator.getHandle(MethodHandles.lookup(), GetNItemsCallback.class, DESCRIPTOR); MethodHandle HANDLE = Interop.getHandle(GetNItemsCallback.class, DESCRIPTOR);
default MemoryAddress toCallback() { default MemoryAddress toCallback() {
return Linker.nativeLinker().upcallStub(HANDLE.bindTo(this), DESCRIPTOR, Interop.getScope()).address(); return Linker.nativeLinker().upcallStub(HANDLE.bindTo(this), DESCRIPTOR, Interop.getScope()).address();

View File

@ -1,25 +1,18 @@
package io.gitlab.jfronny.inceptum.gtk.callback; package io.gitlab.jfronny.inceptum.gtk.callback;
import io.github.jwharm.javagi.CallbackGenerator;
import io.github.jwharm.javagi.Interop; import io.github.jwharm.javagi.Interop;
import io.github.jwharm.javagi.Marshal;
import io.github.jwharm.javagi.Ownership; import io.github.jwharm.javagi.Ownership;
import org.gtk.gobject.GiObject; import org.gtk.gobject.*;
import org.gtk.gobject.ParamSpec;
import org.gtk.gobject.Value;
import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.ApiStatus;
import java.lang.foreign.FunctionDescriptor; import java.lang.foreign.*;
import java.lang.foreign.Linker;
import java.lang.foreign.MemoryAddress;
import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
public interface GetPropertyCallback { public interface GetPropertyCallback {
void invoke(GiObject object, int propertyId, Value value, ParamSpec paramSpec); void invoke(GObject object, int propertyId, Value value, ParamSpec paramSpec);
default void upcall(MemoryAddress object, int propertyId, MemoryAddress value, MemoryAddress pspec) { default void upcall(MemoryAddress object, int propertyId, MemoryAddress value, MemoryAddress pspec) {
invoke(GiObject.fromAddress.marshal(object, Ownership.NONE), invoke(GObject.fromAddress.marshal(object, Ownership.NONE),
propertyId, propertyId,
Value.fromAddress.marshal(value, Ownership.NONE), Value.fromAddress.marshal(value, Ownership.NONE),
ParamSpec.fromAddress.marshal(pspec, Ownership.NONE)); ParamSpec.fromAddress.marshal(pspec, Ownership.NONE));
@ -28,7 +21,7 @@ public interface GetPropertyCallback {
@ApiStatus.Internal @ApiStatus.Internal
FunctionDescriptor DESCRIPTOR = FunctionDescriptor.ofVoid(Interop.valueLayout.ADDRESS, Interop.valueLayout.C_INT, Interop.valueLayout.ADDRESS, Interop.valueLayout.ADDRESS); FunctionDescriptor DESCRIPTOR = FunctionDescriptor.ofVoid(Interop.valueLayout.ADDRESS, Interop.valueLayout.C_INT, Interop.valueLayout.ADDRESS, Interop.valueLayout.ADDRESS);
@ApiStatus.Internal @ApiStatus.Internal
MethodHandle HANDLE = CallbackGenerator.getHandle(MethodHandles.lookup(), GetPropertyCallback.class, DESCRIPTOR); MethodHandle HANDLE = Interop.getHandle(GetPropertyCallback.class, DESCRIPTOR);
default MemoryAddress toCallback() { default MemoryAddress toCallback() {
return Linker.nativeLinker().upcallStub(HANDLE.bindTo(this), DESCRIPTOR, Interop.getScope()).address(); return Linker.nativeLinker().upcallStub(HANDLE.bindTo(this), DESCRIPTOR, Interop.getScope()).address();

View File

@ -1,25 +1,18 @@
package io.gitlab.jfronny.inceptum.gtk.callback; package io.gitlab.jfronny.inceptum.gtk.callback;
import io.github.jwharm.javagi.CallbackGenerator;
import io.github.jwharm.javagi.Interop; import io.github.jwharm.javagi.Interop;
import io.github.jwharm.javagi.Marshal;
import io.github.jwharm.javagi.Ownership; import io.github.jwharm.javagi.Ownership;
import org.gtk.gobject.GiObject; import org.gtk.gobject.*;
import org.gtk.gobject.ParamSpec;
import org.gtk.gobject.Value;
import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.ApiStatus;
import java.lang.foreign.FunctionDescriptor; import java.lang.foreign.*;
import java.lang.foreign.Linker;
import java.lang.foreign.MemoryAddress;
import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
public interface SetPropertyCallback { public interface SetPropertyCallback {
void invoke(GiObject object, int propertyId, Value value, ParamSpec paramSpec); void invoke(GObject object, int propertyId, Value value, ParamSpec paramSpec);
default void upcall(MemoryAddress object, int propertyId, MemoryAddress value, MemoryAddress pspec) { default void upcall(MemoryAddress object, int propertyId, MemoryAddress value, MemoryAddress pspec) {
invoke(GiObject.fromAddress.marshal(object, Ownership.NONE), invoke(GObject.fromAddress.marshal(object, Ownership.NONE),
propertyId, propertyId,
Value.fromAddress.marshal(value, Ownership.NONE), Value.fromAddress.marshal(value, Ownership.NONE),
ParamSpec.fromAddress.marshal(pspec, Ownership.NONE)); ParamSpec.fromAddress.marshal(pspec, Ownership.NONE));
@ -28,7 +21,7 @@ public interface SetPropertyCallback {
@ApiStatus.Internal @ApiStatus.Internal
FunctionDescriptor DESCRIPTOR = FunctionDescriptor.ofVoid(Interop.valueLayout.ADDRESS, Interop.valueLayout.C_INT, Interop.valueLayout.ADDRESS, Interop.valueLayout.ADDRESS); FunctionDescriptor DESCRIPTOR = FunctionDescriptor.ofVoid(Interop.valueLayout.ADDRESS, Interop.valueLayout.C_INT, Interop.valueLayout.ADDRESS, Interop.valueLayout.ADDRESS);
@ApiStatus.Internal @ApiStatus.Internal
MethodHandle HANDLE = CallbackGenerator.getHandle(MethodHandles.lookup(), SetPropertyCallback.class, DESCRIPTOR); MethodHandle HANDLE = Interop.getHandle(SetPropertyCallback.class, DESCRIPTOR);
default MemoryAddress toCallback() { default MemoryAddress toCallback() {
return Linker.nativeLinker().upcallStub(HANDLE.bindTo(this), DESCRIPTOR, Interop.getScope()).address(); return Linker.nativeLinker().upcallStub(HANDLE.bindTo(this), DESCRIPTOR, Interop.getScope()).address();

View File

@ -2,8 +2,7 @@ package io.gitlab.jfronny.inceptum.gtk.control;
import io.github.jwharm.javagi.Ownership; import io.github.jwharm.javagi.Ownership;
import io.gitlab.jfronny.inceptum.launcher.system.instance.Instance; import io.gitlab.jfronny.inceptum.launcher.system.instance.Instance;
import org.gtk.gobject.GObject; import org.gtk.gobject.*;
import org.gtk.gobject.TypeInstance;
import org.gtk.gtk.Image; import org.gtk.gtk.Image;
import org.gtk.gtk.Spinner; import org.gtk.gtk.Spinner;
import org.gtk.gtk.Stack; import org.gtk.gtk.Stack;
@ -19,8 +18,8 @@ public class InstanceThumbnail extends Stack {
super(address, ownership); super(address, ownership);
} }
public static InstanceThumbnail castFrom(org.gtk.gobject.GiObject gobject) { public static InstanceThumbnail castFrom(org.gtk.gobject.GObject gobject) {
if (GObject.typeCheckInstanceIsA(TypeInstance.fromAddress.marshal(gobject.handle(), Ownership.NONE), Stack.getType())) { if (GObjects.typeCheckInstanceIsA(TypeInstance.fromAddress.marshal(gobject.handle(), Ownership.NONE), Stack.getType())) {
return new InstanceThumbnail(gobject.handle(), gobject.yieldOwnership()); return new InstanceThumbnail(gobject.handle(), gobject.yieldOwnership());
} else { } else {
throw new ClassCastException("Object type is not an instance of GtkStack"); throw new ClassCastException("Object type is not an instance of GtkStack");

View File

@ -12,14 +12,14 @@ import org.gtk.gtk.*;
import java.lang.foreign.*; import java.lang.foreign.*;
import java.lang.invoke.VarHandle; import java.lang.invoke.VarHandle;
public class ListIndex extends GiObject { public class ListIndex extends GObject {
private static final int PROP_ITEM_TYPE = 1; private static final int PROP_ITEM_TYPE = 1;
private static final String PROP_NAME = "item-type"; private static final String PROP_NAME = "item-type";
private static final String TYPE_NAME = "ListIndex"; private static final String TYPE_NAME = "ListIndex";
private static final Type PARENT_TYPE = GiObject.getType(); private static final Type PARENT_TYPE = GObject.getType();
private static final MemoryLayout memoryLayout = MemoryLayout.structLayout( private static final MemoryLayout memoryLayout = MemoryLayout.structLayout(
GiObject.getMemoryLayout().withName("parent_instance"), GObject.getMemoryLayout().withName("parent_instance"),
Interop.valueLayout.C_INT.withName("index"), Interop.valueLayout.C_INT.withName("index"),
Interop.valueLayout.C_INT.withName("size") Interop.valueLayout.C_INT.withName("size")
).withName(TYPE_NAME); ).withName(TYPE_NAME);
@ -28,7 +28,7 @@ public class ListIndex extends GiObject {
public static Type getType() { public static Type getType() {
if (type == null) { if (type == null) {
// Register the new gtype // Register the new gtype
type = GObject.typeRegisterStaticSimple( type = GObjects.typeRegisterStaticSimple(
PARENT_TYPE, PARENT_TYPE,
TYPE_NAME, TYPE_NAME,
(short) ObjectClass.getMemoryLayout().byteSize(), (short) ObjectClass.getMemoryLayout().byteSize(),
@ -37,7 +37,7 @@ public class ListIndex extends GiObject {
instanceInit, instanceInit,
TypeFlags.NONE TypeFlags.NONE
); );
GObject.typeAddInterfaceStatic(type, ListModel.getType(), InterfaceInfo.builder() GObjects.typeAddInterfaceStatic(type, ListModel.getType(), InterfaceInfo.builder()
.setInterfaceInit(interfaceInit) .setInterfaceInit(interfaceInit)
.setInterfaceData(null) .setInterfaceData(null)
.setInterfaceFinalize(null) .setInterfaceFinalize(null)
@ -49,8 +49,8 @@ public class ListIndex extends GiObject {
private static final VarHandle index = memoryLayout.varHandle(MemoryLayout.PathElement.groupElement("index")); private static final VarHandle index = memoryLayout.varHandle(MemoryLayout.PathElement.groupElement("index"));
private static final VarHandle size = memoryLayout.varHandle(MemoryLayout.PathElement.groupElement("size")); private static final VarHandle size = memoryLayout.varHandle(MemoryLayout.PathElement.groupElement("size"));
public static ListIndex castFrom(GiObject gobject) { public static ListIndex castFrom(GObject gobject) {
if (GObject.typeCheckInstanceIsA(TypeInstance.fromAddress.marshal(gobject.handle(), Ownership.NONE), getType())) { if (GObjects.typeCheckInstanceIsA(TypeInstance.fromAddress.marshal(gobject.handle(), Ownership.NONE), getType())) {
return new ListIndex(gobject.handle(), gobject.yieldOwnership()); return new ListIndex(gobject.handle(), gobject.yieldOwnership());
} else { } else {
throw new ClassCastException("Object type is not an instance of ListIndex"); throw new ClassCastException("Object type is not an instance of ListIndex");
@ -68,7 +68,7 @@ public class ListIndex extends GiObject {
} }
public ListIndex() { public ListIndex() {
super(new GiObject(getType(), PROP_NAME, getType()).handle(), super(new GObject(getType(), PROP_NAME, getType()).handle(),
Ownership.FULL); Ownership.FULL);
} }
@ -110,12 +110,12 @@ public class ListIndex extends GiObject {
private static final ClassInitFunc classInit = (klass, data) -> { private static final ClassInitFunc classInit = (klass, data) -> {
System.out.println("ListIndex::classInit"); System.out.println("ListIndex::classInit");
parentClass = klass.peekParent(); parentClass = klass.peekParent();
ObjectClass objectClass = ObjectClass.fromAddress.marshal(GObject.typeCheckClassCast(klass, PARENT_TYPE).handle(), Ownership.NONE); ObjectClass objectClass = ObjectClass.fromAddress.marshal(GObjects.typeCheckClassCast(klass, PARENT_TYPE).handle(), Ownership.NONE);
objectClass.setDispose(instanceDispose.toCallback()); objectClass.setDispose(instanceDispose.toCallback());
objectClass.setGetProperty(getProperty.toCallback()); objectClass.setGetProperty(getProperty.toCallback());
objectClass.setSetProperty(setProperty.toCallback()); objectClass.setSetProperty(setProperty.toCallback());
ParamSpec paramType = GObject.paramSpecGtype(PROP_NAME, "", "", PARENT_TYPE, ParamSpec paramType = GObjects.paramSpecGtype(PROP_NAME, "", "", PARENT_TYPE,
ParamFlags.CONSTRUCT ParamFlags.CONSTRUCT
.or(ParamFlags.READWRITE, .or(ParamFlags.READWRITE,
ParamFlags.STATIC_NAME, ParamFlags.STATIC_NAME,