|  |  | @ -83,6 +83,11 @@ namespace df { | 
			
		
	
		
		
			
				
					
					|  |  |  |         typedef RT type; \ |  |  |  |         typedef RT type; \ | 
			
		
	
		
		
			
				
					
					|  |  |  |         typedef CT class_type; \ |  |  |  |         typedef CT class_type; \ | 
			
		
	
		
		
			
				
					
					|  |  |  |         static const bool is_method = true; \ |  |  |  |         static const bool is_method = true; \ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     }; \ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     template<FW_TARGSC class RT, class CT> struct return_type<RT (CT::*) FArgs const> { \ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         typedef RT type; \ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         typedef CT class_type; \ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         static const bool is_method = true; \ | 
			
		
	
		
		
			
				
					
					|  |  |  |     }; |  |  |  |     }; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | #define INSTANTIATE_WRAPPERS2(Count, FArgs, Args, Loads) \ |  |  |  | #define INSTANTIATE_WRAPPERS2(Count, FArgs, Args, Loads) \ | 
			
		
	
	
		
		
			
				
					|  |  | @ -99,10 +104,20 @@ namespace df { | 
			
		
	
		
		
			
				
					
					|  |  |  |         static void execute(lua_State *state, int base, void (CT::*cb) FArgs) { \ |  |  |  |         static void execute(lua_State *state, int base, void (CT::*cb) FArgs) { \ | 
			
		
	
		
		
			
				
					
					|  |  |  |             LOAD_CLASS() Loads; INVOKE_VOID((self->*cb) Args); } \ |  |  |  |             LOAD_CLASS() Loads; INVOKE_VOID((self->*cb) Args); } \ | 
			
		
	
		
		
			
				
					
					|  |  |  |     }; \ |  |  |  |     }; \ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     template<FW_TARGSC class CT> struct function_wrapper<void (CT::*) FArgs const, true> { \ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         static const int num_args = Count+1; \ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         static void execute(lua_State *state, int base, void (CT::*cb) FArgs const) { \ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             LOAD_CLASS() Loads; INVOKE_VOID((self->*cb) Args); } \ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     }; \ | 
			
		
	
		
		
			
				
					
					|  |  |  |     template<FW_TARGSC class RT, class CT> struct function_wrapper<RT (CT::*) FArgs, false> { \ |  |  |  |     template<FW_TARGSC class RT, class CT> struct function_wrapper<RT (CT::*) FArgs, false> { \ | 
			
		
	
		
		
			
				
					
					|  |  |  |         static const int num_args = Count+1; \ |  |  |  |         static const int num_args = Count+1; \ | 
			
		
	
		
		
			
				
					
					|  |  |  |         static void execute(lua_State *state, int base, RT (CT::*cb) FArgs) { \ |  |  |  |         static void execute(lua_State *state, int base, RT (CT::*cb) FArgs) { \ | 
			
		
	
		
		
			
				
					
					|  |  |  |             LOAD_CLASS(); Loads; INVOKE_RV((self->*cb) Args); } \ |  |  |  |             LOAD_CLASS(); Loads; INVOKE_RV((self->*cb) Args); } \ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     }; \ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     template<FW_TARGSC class RT, class CT> struct function_wrapper<RT (CT::*) FArgs const, false> { \ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         static const int num_args = Count+1; \ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         static void execute(lua_State *state, int base, RT (CT::*cb) FArgs const) { \ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             LOAD_CLASS(); Loads; INVOKE_RV((self->*cb) Args); } \ | 
			
		
	
		
		
			
				
					
					|  |  |  |     }; |  |  |  |     }; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | #define INSTANTIATE_WRAPPERS(Count, FArgs, OFArgs, Args, OArgs, Loads) \ |  |  |  | #define INSTANTIATE_WRAPPERS(Count, FArgs, OFArgs, Args, OArgs, Loads) \ | 
			
		
	
	
		
		
			
				
					|  |  | 
 |