]> git.mxchange.org Git - simgear.git/commitdiff
cppbind: fix testing for naRef identity.
authorThomas Geymayer <tomgey@gmail.com>
Mon, 31 Mar 2014 12:21:21 +0000 (14:21 +0200)
committerThomas Geymayer <tomgey@gmail.com>
Mon, 31 Mar 2014 12:21:21 +0000 (14:21 +0200)
simgear/nasal/cppbind/cppbind_test.cxx
simgear/nasal/misc.c
simgear/nasal/nasal.h

index d8f2461261e26fff80c5957eb5eab8e0705197e4..2a8abe4275d4aea7c5a651212125cf4732aeae67 100644 (file)
@@ -180,7 +180,7 @@ int main(int argc, char* argv[])
   VERIFY( fmem );
   naRef ret = fmem(hash.get_naRef()),
         hash_ref = hash.get_naRef();
-  VERIFY( memcmp(&ret, &hash_ref, sizeof(naRef)) == 0 );
+  VERIFY( naIsIdentical(ret, hash_ref) );
 
   // Check if nasal::Me gets passed as self/me and remaining arguments are
   // passed on to function
index a249fce70332fb186e991fddb46a9d863acec7db..5a531d536d7d2a0cd0bccfb1c92a2323c8cbeb18 100644 (file)
@@ -244,6 +244,7 @@ int naIsFunc(naRef r)   { return IS_FUNC(r); }
 int naIsCode(naRef r)   { return IS_CODE(r); }
 int naIsCCode(naRef r)  { return IS_CCODE(r); }
 int naIsGhost(naRef r)  { return IS_GHOST(r); }
+int naIsIdentical(naRef l, naRef r) { return IDENTICAL(l, r); }
 
 void naSetUserData(naContext c, void* p) { c->userData = p; }
 void* naGetUserData(naContext c)
index ba7947fc7986a1058747df911651ae523e7418e2..832724471ffdd3e340945008d84204500dfde976 100644 (file)
@@ -180,6 +180,9 @@ int naIsCode(naRef r) GCC_PURE;
 int naIsFunc(naRef r) GCC_PURE;
 int naIsCCode(naRef r) GCC_PURE;
 
+// Object equality (check for same instance, aka. pointer equality)
+int naIsIdentical(naRef l, naRef r) GCC_PURE;
+
 // Allocators/generators:
 naRef naNil() GCC_PURE;
 naRef naNum(double num) GCC_PURE;