From a160e176da0c6e0caea36cffe7eb0bc49a2031cc Mon Sep 17 00:00:00 2001 From: Thomas Geymayer Date: Mon, 31 Mar 2014 14:21:21 +0200 Subject: [PATCH] cppbind: fix testing for naRef identity. --- simgear/nasal/cppbind/cppbind_test.cxx | 2 +- simgear/nasal/misc.c | 1 + simgear/nasal/nasal.h | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/simgear/nasal/cppbind/cppbind_test.cxx b/simgear/nasal/cppbind/cppbind_test.cxx index d8f24612..2a8abe42 100644 --- a/simgear/nasal/cppbind/cppbind_test.cxx +++ b/simgear/nasal/cppbind/cppbind_test.cxx @@ -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 diff --git a/simgear/nasal/misc.c b/simgear/nasal/misc.c index a249fce7..5a531d53 100644 --- a/simgear/nasal/misc.c +++ b/simgear/nasal/misc.c @@ -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) diff --git a/simgear/nasal/nasal.h b/simgear/nasal/nasal.h index ba7947fc..83272447 100644 --- a/simgear/nasal/nasal.h +++ b/simgear/nasal/nasal.h @@ -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; -- 2.39.5