[Avida-SVN] r2845 - development/source/script

brysonda at myxo.css.msu.edu brysonda at myxo.css.msu.edu
Mon Oct 13 21:12:29 PDT 2008


Author: brysonda
Date: 2008-10-14 00:12:29 -0400 (Tue, 14 Oct 2008)
New Revision: 2845

Modified:
   development/source/script/ASAvidaLib.cc
Log:
AS: Simplify native object declaration.

Modified: development/source/script/ASAvidaLib.cc
===================================================================
--- development/source/script/ASAvidaLib.cc	2008-10-14 04:03:05 UTC (rev 2844)
+++ development/source/script/ASAvidaLib.cc	2008-10-14 04:12:29 UTC (rev 2845)
@@ -33,16 +33,15 @@
 
 #include <cstring>
 
+#define AS_DECLARE_NATIVE_OBJECT(CLASS, NAME) \
+ namespace AvidaScript { template<> inline sASTypeInfo TypeOf<CLASS*>() { return sASTypeInfo(AS_TYPE_OBJECT_REF, #NAME); } }
 
-namespace AvidaScript {
-  template<> inline sASTypeInfo TypeOf<cAvidaConfig*>() { return sASTypeInfo(AS_TYPE_OBJECT_REF, "Config"); }
-  template<> inline sASTypeInfo TypeOf<cDefaultRunDriver*>() { return sASTypeInfo(AS_TYPE_OBJECT_REF, "Driver"); }  
-  template<> inline sASTypeInfo TypeOf<cWorld*>() { return sASTypeInfo(AS_TYPE_OBJECT_REF, "World"); }
-};
 
+AS_DECLARE_NATIVE_OBJECT(cAvidaConfig,       Config);
+AS_DECLARE_NATIVE_OBJECT(cDefaultRunDriver,  Driver);
+AS_DECLARE_NATIVE_OBJECT(cWorld,             World);
 
 
-
 static void setupNativeObjects()
 {
   tASNativeObject<cAvidaConfig>::InitializeMethodRegistrar();
@@ -58,9 +57,8 @@
   tASNativeObject<cWorld>::InitializeMethodRegistrar();
 };
 
+#undef AS_DECLARE_NATIVE_OBJECT
 
-
-
 template<class FunctionType> class tASNativeObjectInstantiate;
 
 template<class NativeClass> 




More information about the Avida-cvs mailing list