Skip to content

Commit

Permalink
Showing 5 changed files with 15 additions and 13 deletions.
Original file line number Diff line number Diff line change
@@ -17,6 +17,7 @@
import com.oracle.truffle.api.dsl.Specialization;
import com.oracle.truffle.api.object.DynamicObject;
import com.oracle.truffle.api.source.SourceSection;

import org.jruby.runtime.Visibility;
import org.jruby.truffle.nodes.RubyNode;
import org.jruby.truffle.nodes.cast.BooleanCastWithDefaultNodeGen;
@@ -44,7 +45,7 @@ public AllocateNode(RubyContext context, SourceSection sourceSection) {

@Specialization
public DynamicObject allocate(DynamicObject rubyClass) {
return Layouts.QUEUE.createQueue(Layouts.CLASS.getInstanceFactory(rubyClass), new LinkedBlockingQueue());
return Layouts.QUEUE.createQueue(Layouts.CLASS.getInstanceFactory(rubyClass), new LinkedBlockingQueue<Object>());
}

}
Original file line number Diff line number Diff line change
@@ -12,6 +12,7 @@
import com.oracle.truffle.api.dsl.Specialization;
import com.oracle.truffle.api.object.DynamicObject;
import com.oracle.truffle.api.source.SourceSection;

import org.jruby.truffle.runtime.RubyContext;
import org.jruby.truffle.runtime.layouts.Layouts;

@@ -28,7 +29,7 @@ public WeakRefNewPrimitiveNode(RubyContext context, SourceSection sourceSection)

@Specialization
public DynamicObject weakRefNew(Object object) {
return Layouts.WEAK_REF_LAYOUT.createWeakRef(getContext().getCoreLibrary().getWeakRefFactory(), new WeakReference(object));
return Layouts.WEAK_REF_LAYOUT.createWeakRef(getContext().getCoreLibrary().getWeakRefFactory(), new WeakReference<Object>(object));
}

}
@@ -42,7 +43,7 @@ public WeakRefSetObjectPrimitiveNode(RubyContext context, SourceSection sourceSe

@Specialization
public Object weakRefSetObject(DynamicObject weakRef, Object object) {
Layouts.WEAK_REF_LAYOUT.setReference(weakRef, new WeakReference(object));
Layouts.WEAK_REF_LAYOUT.setReference(weakRef, new WeakReference<Object>(object));
return object;
}

Original file line number Diff line number Diff line change
@@ -22,10 +22,10 @@ DynamicObjectFactory createQueueShape(DynamicObject logicalClass,
DynamicObject metaClass);

DynamicObject createQueue(DynamicObjectFactory factory,
LinkedBlockingQueue queue);
LinkedBlockingQueue<Object> queue);

boolean isQueue(DynamicObject object);

LinkedBlockingQueue getQueue(DynamicObject object);
LinkedBlockingQueue<Object> getQueue(DynamicObject object);

}
Original file line number Diff line number Diff line change
@@ -11,21 +11,22 @@

import com.oracle.truffle.api.object.DynamicObject;
import com.oracle.truffle.api.object.DynamicObjectFactory;
import org.jruby.truffle.om.dsl.api.Nullable;

import java.util.concurrent.BlockingQueue;

import org.jruby.truffle.om.dsl.api.Nullable;

@org.jruby.truffle.om.dsl.api.Layout
public interface SizedQueueLayout extends BasicObjectLayout {

DynamicObjectFactory createSizedQueueShape(DynamicObject logicalClass,
DynamicObject metaClass);

DynamicObject createSizedQueue(DynamicObjectFactory factory,
@Nullable BlockingQueue queue);
@Nullable BlockingQueue<Object> queue);

BlockingQueue getQueue(DynamicObject object);
BlockingQueue<Object> getQueue(DynamicObject object);

void setQueue(DynamicObject object, BlockingQueue queue);
void setQueue(DynamicObject object, BlockingQueue<Object> queue);

}
Original file line number Diff line number Diff line change
@@ -11,7 +11,6 @@

import com.oracle.truffle.api.object.DynamicObject;
import com.oracle.truffle.api.object.DynamicObjectFactory;
import jnr.ffi.Pointer;
import org.jruby.truffle.om.dsl.api.Layout;
import org.jruby.truffle.runtime.layouts.BasicObjectLayout;

@@ -24,9 +23,9 @@ DynamicObjectFactory createWeakRefShape(DynamicObject logicalClass,
DynamicObject metaClass);

DynamicObject createWeakRef(DynamicObjectFactory factory,
WeakReference reference);
WeakReference<Object> reference);

WeakReference getReference(DynamicObject object);
void setReference(DynamicObject object, WeakReference reference);
WeakReference<Object> getReference(DynamicObject object);
void setReference(DynamicObject object, WeakReference<Object> reference);

}

0 comments on commit 99c936b

Please sign in to comment.