From: <ipe...@us...> - 2010-04-11 00:31:43
|
Revision: 13813 http://x10.svn.sourceforge.net/x10/?rev=13813&view=rev Author: ipeshansky Date: 2010-04-11 00:31:34 +0000 (Sun, 11 Apr 2010) Log Message: ----------- Fix XTENLANG-569. Re-enable checks for generic type parameters. Modified Paths: -------------- trunk/x10.compiler/src/x10cpp/visit/MessagePassingCodeGenerator.java trunk/x10.runtime/src-cpp/x10aux/ref.h Modified: trunk/x10.compiler/src/x10cpp/visit/MessagePassingCodeGenerator.java =================================================================== --- trunk/x10.compiler/src/x10cpp/visit/MessagePassingCodeGenerator.java 2010-04-10 22:48:30 UTC (rev 13812) +++ trunk/x10.compiler/src/x10cpp/visit/MessagePassingCodeGenerator.java 2010-04-11 00:31:34 UTC (rev 13813) @@ -3064,7 +3064,7 @@ if (mi.container().isClass() && mi.container().toClass().flags().isInterface()) { // FIXME: need some template magic to define a placeCheck/nullCheck that is a no-op on structs, // but does something on ref. Defer to 2.0.1. - invokeInterface(n, (Expr) target, args, Emitter.translateType(t), mi.container(), mi, false, false); + invokeInterface(n, (Expr) target, args, Emitter.translateType(t), mi.container(), mi, true, true); sw.end(); return; } Modified: trunk/x10.runtime/src-cpp/x10aux/ref.h =================================================================== --- trunk/x10.runtime/src-cpp/x10aux/ref.h 2010-04-10 22:48:30 UTC (rev 13812) +++ trunk/x10.runtime/src-cpp/x10aux/ref.h 2010-04-11 00:31:34 UTC (rev 13813) @@ -187,6 +187,11 @@ return obj; } + // A no-op for non-refs + template <class T> inline T nullCheck(T str) { + return str; + } + template <class T> inline ref<T> placeCheck(ref<T> obj) { #if !defined(NO_PLACE_CHECKS) && !defined(NO_EXCEPTIONS) //if (remote_ref::is_remote(obj.operator->())) throwBPE(); @@ -195,6 +200,11 @@ return obj; } + // A no-op for non-refs + template <class T> inline T placeCheck(T str) { + return str; + } + // will be initialised to NULL static ref<x10::lang::NullType> null; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |