removed one indirection when performing an arg check in TH

This commit is contained in:
Ronan Collobert
2012-09-28 14:18:43 +02:00
parent f964984b1c
commit ecaa6d74f8
2 changed files with 15 additions and 16 deletions

View File

@ -32,30 +32,29 @@ void THSetErrorHandler( void (*torchErrorHandlerFunction_)(const char *msg) )
}
/* Torch Arg Checking Handling */
static void defaultTorchArgCheckHandlerFunction(int condition, int argNumber, const char *msg)
static void defaultTorchArgErrorHandlerFunction(int argNumber, const char *msg)
{
if(!condition)
{
if(msg)
printf("$ Invalid argument %d: %s\n", argNumber, msg);
else
printf("$ Invalid argument %d\n", argNumber);
exit(-1);
}
if(msg)
printf("$ Invalid argument %d: %s\n", argNumber, msg);
else
printf("$ Invalid argument %d\n", argNumber);
exit(-1);
}
static void (*torchArgCheckHandlerFunction)(int condition, int argNumber, const char *msg) = defaultTorchArgCheckHandlerFunction;
static void (*torchArgErrorHandlerFunction)(int argNumber, const char *msg) = defaultTorchArgErrorHandlerFunction;
void THArgCheck(int condition, int argNumber, const char *msg)
{
(*torchArgCheckHandlerFunction)(condition, argNumber, msg);
if(!condition)
(*torchArgErrorHandlerFunction)(argNumber, msg);
}
void THSetArgCheckHandler( void (*torchArgCheckHandlerFunction_)(int condition, int argNumber, const char *msg) )
void THSetArgErrorHandler( void (*torchArgErrorHandlerFunction_)(int argNumber, const char *msg) )
{
if(torchArgCheckHandlerFunction_)
torchArgCheckHandlerFunction = torchArgCheckHandlerFunction_;
if(torchArgErrorHandlerFunction_)
torchArgErrorHandlerFunction = torchArgErrorHandlerFunction_;
else
torchArgCheckHandlerFunction = defaultTorchArgCheckHandlerFunction;
torchArgErrorHandlerFunction = defaultTorchArgErrorHandlerFunction;
}
void* THAlloc(long size)

View File

@ -46,7 +46,7 @@ TH_API double log1p(const double x);
TH_API void THError(const char *fmt, ...);
TH_API void THSetErrorHandler( void (*torchErrorHandlerFunction)(const char *msg) );
TH_API void THArgCheck(int condition, int argNumber, const char *msg);
TH_API void THSetArgCheckHandler( void (*torchArgCheckHandlerFunction)(int condition, int argNumber, const char *msg) );
TH_API void THSetArgErrorHandler( void (*torchArgErrorHandlerFunction)(int argNumber, const char *msg) );
TH_API void* THAlloc(long size);
TH_API void* THRealloc(void *ptr, long size);
TH_API void THFree(void *ptr);