You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mt...@apache.org on 2009/06/19 11:39:55 UTC
svn commit: r786431 - in /commons/sandbox/runtime/trunk/src:
main/java/org/apache/commons/runtime/ test/org/apache/commons/runtime/
Author: mturk
Date: Fri Jun 19 09:39:54 2009
New Revision: 786431
URL: http://svn.apache.org/viewvc?rev=786431&view=rev
Log:
Add Structure sizeof method
Modified:
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Structure.java
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Structure32.java
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Structure64.java
commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestMemory.java
Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Structure.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Structure.java?rev=786431&r1=786430&r2=786431&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Structure.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Structure.java Fri Jun 19 09:39:54 2009
@@ -46,6 +46,13 @@
}
/**
+ * Get a size of this {@code structure}.
+ *
+ * @return {@code int} representing the size.
+ */
+ public abstract int sizeof();
+
+ /**
* Get a {@code byte} value this {@code structure} contains at the
* {@code index}.
*
Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Structure32.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Structure32.java?rev=786431&r1=786430&r2=786431&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Structure32.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Structure32.java Fri Jun 19 09:39:54 2009
@@ -45,6 +45,11 @@
private static native void poke4(int addr, float v);
private static native void poke5(int addr, double v);
+ public int sizeof()
+ {
+ return POINTER.PLENGTH;
+ }
+
public boolean equals(Object other)
{
if (other == null)
Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Structure64.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Structure64.java?rev=786431&r1=786430&r2=786431&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Structure64.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Structure64.java Fri Jun 19 09:39:54 2009
@@ -45,6 +45,11 @@
private static native void poke4(long addr, float v);
private static native void poke5(long addr, double v);
+ public int sizeof()
+ {
+ return (int)POINTER.PLENGTH;
+ }
+
public boolean equals(Object other)
{
if (other == null)
Modified: commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestMemory.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestMemory.java?rev=786431&r1=786430&r2=786431&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestMemory.java (original)
+++ commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestMemory.java Fri Jun 19 09:39:54 2009
@@ -283,6 +283,17 @@
p.free();
}
+ public void testStructSize()
+ throws Throwable
+ {
+ Pointer p = Memory.calloc(1000);
+ assertNotNull("Pointer", p);
+ Structure s = p.asStructure();
+ assertEquals("Size", 1000, s.sizeof());
+
+ p.free();
+ }
+
public void testPoke()
throws Throwable
{