Skip to content

Tracing macros #617

@DimitriPapadopoulos

Description

@DimitriPapadopoulos

Describe the bug

I am not sure I understand the tracing macros:

c-blosc2/include/blosc2.h

Lines 114 to 129 in 3ae32b6

#define BLOSC_ERROR(rc) \
do { \
int rc_ = rc; \
if (rc_ < BLOSC2_ERROR_SUCCESS) { \
char *error_msg = print_error(rc_); \
BLOSC_TRACE_ERROR("%s", error_msg); \
return rc_; \
} \
} while (0)
#define BLOSC_INFO(msg, ...) \
do { \
const char *__e = getenv("BLOSC_INFO"); \
if (!__e) { break; } \
fprintf(stderr, "[INFO] - " msg "\n", ##__VA_ARGS__); \
} while(0)

  • BLOSC_ERROR calls BLOSC_TRACE_ERROR, which prints only if environment variable BLOSC_TRACE is defined
  • BLOSC_INFO prints directly if environment variable BLOSC_INFO is defined. Instead, I think it should call BLOSC_TRACE_INFO, which prints only if environment variable BLOSC_TRACE is defined.

I realise that it's probably unfeasible to modify things without slightly breaking backwards compatibility, but the current macros don't make sense to me: if environment only variable BLOSC_INFO is defined, BLOSC_INFO will print but BLOSC_ERROR will not print!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions