forked from jruby/jruby
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rebase PointerParameterStrategy hierarchy on jnr.ffi.ObjectParameterS…
…trategy
- Loading branch information
1 parent
6cc1072
commit f29b9f6
Showing
12 changed files
with
106 additions
and
134 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
22 changes: 11 additions & 11 deletions
22
src/org/jruby/ext/ffi/jffi/DelegatingPointerParameterStrategy.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,39 @@ | ||
package org.jruby.ext.ffi.jffi; | ||
|
||
import org.jruby.ext.ffi.AbstractMemory; | ||
import org.jruby.ext.ffi.ArrayMemoryIO; | ||
import com.kenai.jffi.ObjectParameterType; | ||
import org.jruby.runtime.builtin.IRubyObject; | ||
|
||
/** | ||
* | ||
*/ | ||
public final class DelegatingPointerParameterStrategy extends PointerParameterStrategy { | ||
private static final ObjectParameterType OBJECT_TYPE = ObjectParameterType.create(ObjectParameterType.ARRAY, ObjectParameterType.ComponentType.BYTE); | ||
private final IRubyObject value; | ||
private final PointerParameterStrategy strategy; | ||
|
||
public DelegatingPointerParameterStrategy(IRubyObject value, PointerParameterStrategy strategy) { | ||
super(strategy.isDirect()); | ||
super(strategy.isDirect(), OBJECT_TYPE); | ||
this.value = value; | ||
this.strategy = strategy; | ||
} | ||
|
||
@Override | ||
public long getAddress(IRubyObject parameter) { | ||
return strategy.getAddress(value); | ||
public long address(Object parameter) { | ||
return strategy.address(value); | ||
} | ||
|
||
@Override | ||
public Object array(IRubyObject parameter) { | ||
return strategy.array(value); | ||
public Object object(Object parameter) { | ||
return strategy.object(value); | ||
} | ||
|
||
@Override | ||
public int arrayOffset(IRubyObject parameter) { | ||
return strategy.arrayOffset(value); | ||
public int offset(Object parameter) { | ||
return strategy.offset(value); | ||
} | ||
|
||
@Override | ||
public int arrayLength(IRubyObject parameter) { | ||
return strategy.arrayLength(value); | ||
public int length(Object parameter) { | ||
return strategy.length(value); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
13 changes: 6 additions & 7 deletions
13
src/org/jruby/ext/ffi/jffi/HeapPointerParameterStrategy.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,35 +1,34 @@ | ||
package org.jruby.ext.ffi.jffi; | ||
|
||
import com.kenai.jffi.ObjectParameterType; | ||
import org.jruby.ext.ffi.AbstractMemory; | ||
import org.jruby.ext.ffi.ArrayMemoryIO; | ||
import org.jruby.ext.ffi.Buffer; | ||
import org.jruby.runtime.builtin.IRubyObject; | ||
|
||
/** | ||
* | ||
*/ | ||
public final class HeapPointerParameterStrategy extends PointerParameterStrategy { | ||
public HeapPointerParameterStrategy() { | ||
super(false); | ||
super(HEAP, ObjectParameterType.create(ObjectParameterType.ARRAY, ObjectParameterType.ComponentType.BYTE)); | ||
} | ||
|
||
@Override | ||
public long getAddress(IRubyObject parameter) { | ||
public long address(Object parameter) { | ||
return 0; | ||
} | ||
|
||
@Override | ||
public Object array(IRubyObject parameter) { | ||
public Object object(Object parameter) { | ||
return ((ArrayMemoryIO) ((AbstractMemory) parameter).getMemoryIO()).array(); | ||
} | ||
|
||
@Override | ||
public int arrayOffset(IRubyObject parameter) { | ||
public int offset(Object parameter) { | ||
return ((ArrayMemoryIO) ((AbstractMemory) parameter).getMemoryIO()).arrayOffset(); | ||
} | ||
|
||
@Override | ||
public int arrayLength(IRubyObject parameter) { | ||
public int length(Object parameter) { | ||
return ((ArrayMemoryIO) ((AbstractMemory) parameter).getMemoryIO()).arrayLength(); | ||
} | ||
} |
13 changes: 6 additions & 7 deletions
13
src/org/jruby/ext/ffi/jffi/HeapStructParameterStrategy.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,35 +1,34 @@ | ||
package org.jruby.ext.ffi.jffi; | ||
|
||
import org.jruby.ext.ffi.AbstractMemory; | ||
import com.kenai.jffi.ObjectParameterType; | ||
import org.jruby.ext.ffi.ArrayMemoryIO; | ||
import org.jruby.ext.ffi.Struct; | ||
import org.jruby.runtime.builtin.IRubyObject; | ||
|
||
/** | ||
* | ||
*/ | ||
public final class HeapStructParameterStrategy extends PointerParameterStrategy { | ||
public HeapStructParameterStrategy() { | ||
super(false); | ||
super(HEAP, ObjectParameterType.create(ObjectParameterType.ARRAY, ObjectParameterType.ComponentType.BYTE)); | ||
} | ||
|
||
@Override | ||
public long getAddress(IRubyObject parameter) { | ||
public long address(Object parameter) { | ||
return 0; | ||
} | ||
|
||
@Override | ||
public Object array(IRubyObject parameter) { | ||
public Object object(Object parameter) { | ||
return ((ArrayMemoryIO) ((Struct) parameter).getMemory().getMemoryIO()).array(); | ||
} | ||
|
||
@Override | ||
public int arrayOffset(IRubyObject parameter) { | ||
public int offset(Object parameter) { | ||
return ((ArrayMemoryIO) ((Struct) parameter).getMemory().getMemoryIO()).arrayOffset(); | ||
} | ||
|
||
@Override | ||
public int arrayLength(IRubyObject parameter) { | ||
public int length(Object parameter) { | ||
return ((ArrayMemoryIO) ((Struct) parameter).getMemory().getMemoryIO()).arrayLength(); | ||
} | ||
} |
Oops, something went wrong.