- if (heap_size(bufferTop->heap) >= bufferTop->capacity &&
- ((bufferTop->bType == MIN_T &&
- value >= ((ItemValue*) (bufferTop->heap->array->datas[0]))->value)
- ||
- (bufferTop->bType == MAX_T &&
- value <= ((ItemValue*) (bufferTop->heap->array->datas[0]))->value)))
- {
- // shortcut : if value "worse" than top->value and buffer is full, skip
- return;
+ if (heap_size(bufferTop->heap) >= bufferTop->capacity) {
+ Real topValue = *((Real*) (bufferTop->heap->values->datas));
+ if (
+ (bufferTop->bType == MIN_T && value >= topValue) ||
+ (bufferTop->bType == MAX_T && value <= topValue)
+ ) {
+ // Shortcut : if value "worse" than top->value and buffer is full, skip
+ return;
+ }