Skip to content

Commit

Permalink
- bugfix in error.h
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@10472 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
lochel committed Nov 12, 2011
1 parent 2e56a5b commit 59171cd
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 12 deletions.
19 changes: 13 additions & 6 deletions SimulationRuntime/c/math-support/ringbuffer.c
Expand Up @@ -54,7 +54,7 @@ RINGBUFFER *allocRingBuffer(int bufferSize, int itemSize)
rb->bufferSize = bufferSize > 0 ? bufferSize : 1;
rb->itemSize = itemSize;
rb->buffer = calloc(rb->bufferSize, rb->itemSize);
ASSERT(rb->buffer, "out of memory", 1);
ASSERT(rb->buffer, "out of memory");
}

void freeRingBuffer(RINGBUFFER *rb)
Expand All @@ -65,8 +65,8 @@ void freeRingBuffer(RINGBUFFER *rb)

void *getRingData(RINGBUFFER *rb, int i)
{
ASSERT(i < rb->nElements, "index out of range", 1);
ASSERT(-rb->nElements < i, "index out of range", 1);
ASSERT(i < rb->nElements, "index out of range");
ASSERT(-rb->nElements < i, "index out of range");
return ((char*)rb->buffer)+(((rb->firstElement+i)%rb->bufferSize)*rb->itemSize);
}

Expand All @@ -75,7 +75,7 @@ void expandRingBuffer(RINGBUFFER *rb)
int i;

void *temp = calloc(2*rb->bufferSize, rb->itemSize);
ASSERT(temp, "out of memory", 1);
ASSERT(temp, "out of memory");

for(i=0; i<rb->nElements; i++)
memcpy(((char*)temp)+(i*rb->itemSize), getRingData(rb, i), rb->itemSize);
Expand All @@ -97,8 +97,8 @@ void appendRingData(RINGBUFFER *rb, void *value)

void dequeueNFirstRingDatas(RINGBUFFER *rb, int n)
{
ASSERT(n <= rb->nElements, "index out of range", 1);
ASSERT(0 <= n, "index out of range)", 1);
ASSERT(n <= rb->nElements, "index out of range");
ASSERT(0 <= n, "index out of range");

rb->firstElement = (rb->firstElement+n)%rb->bufferSize;
rb->nElements -= n;
Expand All @@ -108,3 +108,10 @@ int ringBufferLength(RINGBUFFER *rb)
{
return rb->nElements;
}

void rotateRingBuffer(RINGBUFFER *rb, int n)
{
ASSERT(n <= rb->nElements, "index out of range");
ASSERT(0 <= n, "index out of range");
rb->firstElement = (rb->firstElement+n)%rb->bufferSize;
}
2 changes: 2 additions & 0 deletions SimulationRuntime/c/math-support/ringbuffer.h
Expand Up @@ -54,6 +54,8 @@ extern "C" {

int ringBufferLength(RINGBUFFER *rb);

void rotateRingBuffer(RINGBUFFER *rb, int n);

#ifdef __cplusplus
}
#endif
Expand Down
15 changes: 9 additions & 6 deletions SimulationRuntime/c/util/error.h
Expand Up @@ -59,16 +59,19 @@ extern const unsigned int LV_ZEROCROSSINGS;
extern const unsigned int LV_DEBUG;
extern const unsigned int LV_LOG_RES_INIT;

#define MSG(type, stream, ...) {fprintf(stream, "%s | [line] %d | [file] %s\n > ", type, __LINE__, __FILE__); fprintf(stream, __VA_ARGS__); fprintf(stream, "\n"); fflush(NULL);}
#define MSG_AL(stream, ...) {fprintf(stream, " > "); fprintf(stream, __VA_ARGS__); fprintf(stream, "\n"); fflush(NULL);}
#define MSG_H(type, stream) {fprintf(stream, "%s | [line] %d | [file] %s\n", type, __LINE__, __FILE__); fflush(NULL);}
#define MSG(type, stream, ...) {fprintf(stream, "%s > ", type); fprintf(stream, __VA_ARGS__); fprintf(stream, "\n"); fflush(NULL);}

#define INFO(...) {MSG("info ", stdout, __VA_ARGS__);}
#define INFO_AL(...) {MSG_AL(stdout, __VA_ARGS__);}
#define INFO_AL(...) {MSG(" ", stdout, __VA_ARGS__);}

#define WARNING(...) {MSG("warning", stdout, __VA_ARGS__);}
#define THROW(...) {MSG("throw ", stderr, __VA_ARGS__); longjmp(globalJmpbuf, 1);}
#define ASSERT(exp, ...) {if(!exp){MSG("assert ", stderr, __VA_ARGS__); longjmp(globalJmpbuf, 1);}}
#define WARNING_AL(...) {INFO_AL(...);}

#define THROW(...) {MSG_H("throw ", stderr); MSG(" ", stderr, __VA_ARGS__); longjmp(globalJmpbuf, 1);}
#define ASSERT(exp, ...) {if(!(exp)){MSG_H("assert ", stderr); MSG(" ", stderr, __VA_ARGS__); longjmp(globalJmpbuf, 1);}}

#define DEBUG_INFO(flag, ...) {if(flag & globalDebugFlags) INFO(__VA_ARGS__);}
#define DEBUG_INFO(flag, ...) {if(flag & globalDebugFlags){MSG_H("debug ", stdout); INFO(__VA_ARGS__);}}
#define DEBUG_INFO_AL(flag, ...) {if(flag & globalDebugFlags) INFO_AL(__VA_ARGS__);}

#ifdef __cplusplus
Expand Down

0 comments on commit 59171cd

Please sign in to comment.