Breakage alert :\
ThrowNativeErrorEx now returns 0 for convenience PushCellByRef and PushFloatByRef no longer have a flags parameter because it was almost pointless --HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40590
This commit is contained in:
		
							parent
							
								
									876e3da8e3
								
							
						
					
					
						commit
						dfed71eb28
					
				@ -297,7 +297,7 @@ int CForward::Execute(cell_t *result, IForwardFilter *filter)
 | 
			
		||||
				{
 | 
			
		||||
					func->PushStringEx((char *)param->byref.orig_addr, param->byref.cells, param->byref.sz_flags, param->byref.flags);
 | 
			
		||||
				} else if (type == Param_Float || type == Param_Cell) {
 | 
			
		||||
					func->PushCellByRef(¶m->val, 0); 
 | 
			
		||||
					func->PushCellByRef(¶m->val); 
 | 
			
		||||
				} else {
 | 
			
		||||
					func->PushArray(param->byref.orig_addr, param->byref.cells, NULL, param->byref.flags);
 | 
			
		||||
					assert(type == Param_Array || type == Param_FloatByRef || type == Param_CellByRef);
 | 
			
		||||
@ -434,7 +434,7 @@ int CForward::PushFloat(float number)
 | 
			
		||||
	return SP_ERROR_NONE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int CForward::PushCellByRef(cell_t *cell, int flags)
 | 
			
		||||
int CForward::PushCellByRef(cell_t *cell)
 | 
			
		||||
{
 | 
			
		||||
	if (m_curparam < m_numparams)
 | 
			
		||||
	{
 | 
			
		||||
@ -452,13 +452,13 @@ int CForward::PushCellByRef(cell_t *cell, int flags)
 | 
			
		||||
		m_params[m_curparam].pushedas = Param_CellByRef;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	_Int_PushArray(cell, 1, flags);
 | 
			
		||||
	_Int_PushArray(cell, 1, SM_PARAM_COPYBACK);
 | 
			
		||||
	m_curparam++;
 | 
			
		||||
 | 
			
		||||
	return SP_ERROR_NONE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int CForward::PushFloatByRef(float *num, int flags)
 | 
			
		||||
int CForward::PushFloatByRef(float *num)
 | 
			
		||||
{
 | 
			
		||||
	if (m_curparam < m_numparams)
 | 
			
		||||
	{
 | 
			
		||||
@ -476,7 +476,7 @@ int CForward::PushFloatByRef(float *num, int flags)
 | 
			
		||||
		m_params[m_curparam].pushedas = Param_FloatByRef;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	_Int_PushArray((cell_t *)num, 1, flags);
 | 
			
		||||
	_Int_PushArray((cell_t *)num, 1, SM_PARAM_COPYBACK);
 | 
			
		||||
	m_curparam++;
 | 
			
		||||
 | 
			
		||||
	return SP_ERROR_NONE;
 | 
			
		||||
 | 
			
		||||
@ -47,9 +47,9 @@ class CForward : public IChangeableForward
 | 
			
		||||
{
 | 
			
		||||
public: //ICallable
 | 
			
		||||
	virtual int PushCell(cell_t cell);
 | 
			
		||||
	virtual int PushCellByRef(cell_t *cell, int flags);
 | 
			
		||||
	virtual int PushCellByRef(cell_t *cell);
 | 
			
		||||
	virtual int PushFloat(float number);
 | 
			
		||||
	virtual int PushFloatByRef(float *number, int flags);
 | 
			
		||||
	virtual int PushFloatByRef(float *number);
 | 
			
		||||
	virtual int PushArray(cell_t *inarray, unsigned int cells, cell_t **phys_addr, int flags);
 | 
			
		||||
	virtual int PushString(const char *string);
 | 
			
		||||
	virtual int PushStringEx(char *buffer, size_t length, int sz_flags, int cp_flags);
 | 
			
		||||
 | 
			
		||||
@ -212,11 +212,11 @@ void BaseContext::SetErrorMessage(const char *msg, va_list ap)
 | 
			
		||||
	vsnprintf(m_MsgCache, sizeof(m_MsgCache), msg, ap);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void BaseContext::ThrowNativeErrorEx(int error, const char *msg, ...)
 | 
			
		||||
cell_t BaseContext::ThrowNativeErrorEx(int error, const char *msg, ...)
 | 
			
		||||
{
 | 
			
		||||
	if (!m_InExec)
 | 
			
		||||
	{
 | 
			
		||||
		return;
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx->n_err = error;
 | 
			
		||||
@ -228,6 +228,8 @@ void BaseContext::ThrowNativeErrorEx(int error, const char *msg, ...)
 | 
			
		||||
		SetErrorMessage(msg, ap);
 | 
			
		||||
		va_end(ap);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cell_t BaseContext::ThrowNativeError(const char *msg, ...)
 | 
			
		||||
 | 
			
		||||
@ -61,7 +61,7 @@ namespace SourcePawn
 | 
			
		||||
		virtual int BindNative(const sp_nativeinfo_t *native);
 | 
			
		||||
		virtual int BindNativeToAny(SPVM_NATIVE_FUNC native);
 | 
			
		||||
		virtual int Execute(uint32_t code_addr, cell_t *result);
 | 
			
		||||
		virtual void ThrowNativeErrorEx(int error, const char *msg, ...);
 | 
			
		||||
		virtual cell_t ThrowNativeErrorEx(int error, const char *msg, ...);
 | 
			
		||||
		virtual cell_t ThrowNativeError(const char *msg, ...);
 | 
			
		||||
		virtual IPluginFunction *GetFunctionByName(const char *public_name);
 | 
			
		||||
		virtual IPluginFunction *GetFunctionById(funcid_t func_id);
 | 
			
		||||
 | 
			
		||||
@ -79,14 +79,14 @@ int CFunction::PushCell(cell_t cell)
 | 
			
		||||
	return SP_ERROR_NONE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int CFunction::PushCellByRef(cell_t *cell, int flags)
 | 
			
		||||
int CFunction::PushCellByRef(cell_t *cell)
 | 
			
		||||
{
 | 
			
		||||
	if (m_curparam >= SP_MAX_EXEC_PARAMS)
 | 
			
		||||
	{
 | 
			
		||||
		return SetError(SP_ERROR_PARAMS_MAX);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return PushArray(cell, 1, NULL, flags);
 | 
			
		||||
	return PushArray(cell, 1, NULL, SM_PARAM_COPYBACK);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int CFunction::PushFloat(float number)
 | 
			
		||||
@ -96,9 +96,9 @@ int CFunction::PushFloat(float number)
 | 
			
		||||
	return PushCell(val);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int CFunction::PushFloatByRef(float *number, int flags)
 | 
			
		||||
int CFunction::PushFloatByRef(float *number)
 | 
			
		||||
{
 | 
			
		||||
	return PushCellByRef((cell_t *)number, flags);
 | 
			
		||||
	return PushCellByRef((cell_t *)number);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int CFunction::PushArray(cell_t *inarray, unsigned int cells, cell_t **phys_addr, int copyback)
 | 
			
		||||
 | 
			
		||||
@ -35,9 +35,9 @@ public:
 | 
			
		||||
	CFunction(uint32_t code_addr, IPluginContext *pContext);
 | 
			
		||||
public:
 | 
			
		||||
	virtual int PushCell(cell_t cell);
 | 
			
		||||
	virtual int PushCellByRef(cell_t *cell, int flags);
 | 
			
		||||
	virtual int PushCellByRef(cell_t *cell);
 | 
			
		||||
	virtual int PushFloat(float number);
 | 
			
		||||
	virtual int PushFloatByRef(float *number, int flags);
 | 
			
		||||
	virtual int PushFloatByRef(float *number);
 | 
			
		||||
	virtual int PushArray(cell_t *inarray, unsigned int cells, cell_t **phys_addr, int copyback);
 | 
			
		||||
	virtual int PushString(const char *string);
 | 
			
		||||
	virtual int PushStringEx(char *buffer, size_t length, int sz_flags, int cp_flags);
 | 
			
		||||
 | 
			
		||||
@ -70,7 +70,7 @@ namespace SourcePawn
 | 
			
		||||
		 * @param flags		Copy-back flags.
 | 
			
		||||
		 * @return			Error code, if any.
 | 
			
		||||
		 */
 | 
			
		||||
		virtual int PushCellByRef(cell_t *cell, int flags) =0;
 | 
			
		||||
		virtual int PushCellByRef(cell_t *cell) =0;
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * @brief Pushes a float onto the current call.
 | 
			
		||||
@ -91,7 +91,7 @@ namespace SourcePawn
 | 
			
		||||
		 & @param flags		Copy-back flags.
 | 
			
		||||
		 * @return			Error code, if any.
 | 
			
		||||
		 */
 | 
			
		||||
		virtual int PushFloatByRef(float *number, int flags) =0;
 | 
			
		||||
		virtual int PushFloatByRef(float *number) =0;
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * @brief Pushes an array of cells onto the current call.  
 | 
			
		||||
@ -505,8 +505,9 @@ namespace SourcePawn
 | 
			
		||||
		 * @param error		The error number to set.
 | 
			
		||||
		 * @param msg		Custom error message format.  NULL to use default.
 | 
			
		||||
		 * @param ...		Message format arguments, if any.
 | 
			
		||||
		 * @return			0 for convenience.
 | 
			
		||||
		 */
 | 
			
		||||
		virtual void ThrowNativeErrorEx(int error, const char *msg, ...) =0;
 | 
			
		||||
		virtual cell_t ThrowNativeErrorEx(int error, const char *msg, ...) =0;
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * @brief Throws a generic native error and halts any current execution.
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user