This is an automated email from the git hooks/post-receive script.

glondu pushed a commit to branch master
in repository ocaml-ctypes.

commit 0b3c2838b015d2359db333d90e8d523d5fac9137
Author: Stephane Glondu <st...@glondu.net>
Date:   Sat Feb 28 17:58:23 2015 +0100

    Imported Upstream version 0.3.3
---
 META                                 | 10 +++++-----
 src/cstubs/cstubs_internals.ml       |  3 ++-
 tests/test-pointers/test_pointers.ml | 37 +++++++++++++++++++++++++++++++++++-
 3 files changed, 43 insertions(+), 7 deletions(-)

diff --git a/META b/META
index a2d5e42..a5db7b7 100644
--- a/META
+++ b/META
@@ -1,4 +1,4 @@
-version = "0.3.2"
+version = "0.3.3"
 description = "Combinators for binding to C libraries without writing any C."
 requires = "unix bigarray str bytes"
 archive(byte) = "ctypes.cma"
@@ -8,7 +8,7 @@ archive(native, plugin) = "ctypes.cmxs"
 exists_if = "ctypes.cma"
 
 package "top" (
-  version = "0.3.2"
+  version = "0.3.3"
   description = "Toplevel printers for C types"
   requires = "ctypes"
   archive(byte) = "ctypes-top.cma"
@@ -19,7 +19,7 @@ package "top" (
 )
 
 package "stubs" (
-  version = "0.3.2"
+  version = "0.3.3"
   description = "Stub generation from C types"
   requires = "ctypes"
   archive(byte) = "cstubs.cma"
@@ -30,7 +30,7 @@ package "stubs" (
 )
 
 package "foreign-base" (
- version = "0.3.2"
+ version = "0.3.3"
  description = "Dynamic linking of C functions"
  requires = "ctypes"
  archive(byte) = "ctypes-foreign-base.cma"
@@ -41,7 +41,7 @@ package "foreign-base" (
 )
 
 package "foreign" (
- version = "0.3.2"
+ version = "0.3.3"
  description = "Dynamic linking of C functions"
  requires = "ctypes ctypes.foreign-base"
  requires(mt) = "threads ctypes ctypes.foreign-base"
diff --git a/src/cstubs/cstubs_internals.ml b/src/cstubs/cstubs_internals.ml
index ad27ab1..3555412 100644
--- a/src/cstubs/cstubs_internals.ml
+++ b/src/cstubs/cstubs_internals.ml
@@ -24,4 +24,5 @@ include Primitives
 let make_ptr reftype raw_ptr =
   CPointer { reftype; raw_ptr; pmanaged = None; pbyte_offset = 0; }
 
-let raw_ptr (CPointer { raw_ptr }) = raw_ptr
+let raw_ptr (CPointer { raw_ptr; pbyte_offset }) =
+  Ctypes_raw.PtrType.(add raw_ptr (of_int pbyte_offset))
diff --git a/tests/test-pointers/test_pointers.ml 
b/tests/test-pointers/test_pointers.ml
index 6332430..050cffe 100644
--- a/tests/test-pointers/test_pointers.ml
+++ b/tests/test-pointers/test_pointers.ml
@@ -154,7 +154,42 @@ struct
     assert_equal 25 !@rv;
     let rv = pass_pointer_through p1 p2 (-10) in
     assert_equal !@rv !@p2;
-    assert_equal 32 !@rv
+    assert_equal 32 !@rv;
+    let p3 = p1 +@ 1 in
+    let rv = pass_pointer_through p3 p1 1 in
+    assert_bool
+      "pointer with (positive) offset successfully passed through"
+      (ptr_compare rv p3 = 0);
+    assert_bool
+      "pointer with positive computed offset compares greater than original"
+      (ptr_compare p1 p3 < 0);
+    assert_bool
+      "pointer with positive computed offset compares greater than original"
+      (ptr_compare p3 p1 > 0);
+    assert_bool
+      "returned pointer with positive computed offset compares greater than 
original"
+      (ptr_compare p1 rv < 0);
+    assert_bool
+      "returned pointer with positive computed offset compares greater than 
original"
+      (ptr_compare rv p1 > 0);
+    assert_equal !@rv !@p3;
+    let p4 = p1 -@ 1 in
+    let rv = pass_pointer_through p1 p4 (-1) in
+    assert_bool
+      "pointer with (negative) offset successfully passed through"
+      (ptr_compare rv p4 = 0);
+    assert_bool
+      "pointer with negative computed offset compares less than original"
+      (ptr_compare p1 p4 > 0);
+    assert_bool
+      "pointer with negative computed offset compares less than original"
+      (ptr_compare p4 p1 < 0);
+    assert_bool
+      "returned pointer with negative computed offset compares greater than 
original"
+      (ptr_compare p1 rv > 0);
+    assert_bool
+      "returned pointer with negative computed offset compares greater than 
original"
+      (ptr_compare rv p1 < 0)
 end
 
 

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-ocaml-maint/packages/ocaml-ctypes.git

_______________________________________________
Pkg-ocaml-maint-commits mailing list
Pkg-ocaml-maint-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-ocaml-maint-commits

Reply via email to