Explorar el Código

Use Push instead of Value<T>::Push

Ole Krüger hace 10 años
padre
commit
4e3100f343
Se han modificado 3 ficheros con 14 adiciones y 14 borrados
  1. 2 2
      lib/luwra/functions.hpp
  2. 10 7
      lib/luwra/types.hpp
  3. 2 5
      lib/luwra/usertypes.hpp

+ 2 - 2
lib/luwra/functions.hpp

@@ -35,7 +35,7 @@ namespace internal {
 	struct FunctionWrapper<R()> {
 		template <R(*FunctionPointer)()> static
 		int Invoke(State* state) {
-			return Value<R>::Push(state, FunctionPointer());
+			return Push(state, FunctionPointer());
 		}
 	};
 
@@ -52,7 +52,7 @@ namespace internal {
 	struct FunctionWrapper<R(A...)> {
 		template <R (*FunctionPointer)(A...)> static
 		int Invoke(State* state) {
-			return Value<R>::Push(
+			return Push(
 				state,
 				Apply(state, FunctionPointer)
 			);

+ 10 - 7
lib/luwra/types.hpp

@@ -144,7 +144,7 @@ namespace internal {
 
 		static inline
 		int Push(State* state, I value) {
-			NumericTransportValue<B>::Push(state, static_cast<B>(value));
+			Push(state, static_cast<B>(value));
 			return 1;
 		}
 	};
@@ -162,7 +162,7 @@ namespace internal {
 		int Push(State*, I) {
 			static_assert(
 				sizeof(I) == -1,
-				"You shold not use 'Value<I>::push' specializations which inherit from NumericTruncatingValueBase"
+				"You shold not use 'Value<I>::Push' specializations which inherit from NumericTruncatingValueBase"
 			);
 		}
 	};
@@ -250,7 +250,8 @@ namespace internal {
 	struct StackPusher<std::index_sequence<I>> {
 		template <typename T> static inline
 		int Push(State* state, const T& package) {
-			return Value<typename std::tuple_element<I, T>::type>::Push(state, std::get<I>(package));
+			// return Value<typename std::tuple_element<I, T>::type>::Push(state, std::get<I>(package));
+			return Push(state, std::get<I>(package));
 		}
 	};
 
@@ -258,10 +259,12 @@ namespace internal {
 	struct StackPusher<std::index_sequence<I, Is...>> {
 		template <typename T> static inline
 		int Push(State* state, const T& package) {
-			int r = Value<typename std::tuple_element<I, T>::type>::Push(
-				state,
-				std::get<I>(package)
-			);
+			// int r = Value<typename std::tuple_element<I, T>::type>::Push(
+			// 	state,
+			// 	std::get<I>(package)
+			// );
+
+			int r = Push(state, std::get<I>(package));
 
 			return std::max(0, r) + StackPusher<std::index_sequence<Is...>>::Push(state, package);
 		}

+ 2 - 5
lib/luwra/usertypes.hpp

@@ -46,10 +46,7 @@ namespace internal {
 
 	template <typename T>
 	int UserTypeToString(State* state) {
-		return Value<std::string>::Push(
-			state,
-			internal::UserTypeName<T>
-		);
+		return Push(state, internal::UserTypeName<T>);
 	}
 
 	template <typename T, typename R, R T::* PropertyPointer>
@@ -60,7 +57,7 @@ namespace internal {
 			return 0;
 		} else {
 			// Getter
-			return Value<R>::Push(state, Value<T&>::Read(state, 1).*PropertyPointer);
+			return Push(state, Value<T&>::Read(state, 1).*PropertyPointer);
 		}
 	}