brianmario / yajl-ruby

A streaming JSON parsing and encoding library for Ruby (C bindings to yajl)
http://rdoc.info/projects/brianmario/yajl-ruby
MIT License
1.48k stars 169 forks source link

Fix c warnings #204

Closed eileencodes closed 3 years ago

eileencodes commented 3 years ago

Fix implicit conversion from enumeration type warning yajl_gen_error is a yajl_gen_state not a yajl_gen_status. This change adds a new value to the enum for an error when the decremented depth is too low.

Warnings:

../../../../ext/yajl/yajl_gen.c:295:5: warning: implicit conversion from enumeration type 'yajl_gen_state' to different enumeration type 'yajl_gen_status'
      [-Wenum-conversion]
    DECREMENT_DEPTH;
    ^~~~~~~~~~~~~~~
../../../../ext/yajl/yajl_gen.c:181:48: note: expanded from macro 'DECREMENT_DEPTH'
    if (--(g->depth) >= YAJL_MAX_DEPTH) return yajl_gen_error;
                                        ~~~~~~ ^~~~~~~~~~~~~~
../../../../ext/yajl/yajl_gen.c:321:5: warning: implicit conversion from enumeration type 'yajl_gen_state' to different enumeration type 'yajl_gen_status'
      [-Wenum-conversion]
    DECREMENT_DEPTH;
    ^~~~~~~~~~~~~~~
../../../../ext/yajl/yajl_gen.c:181:48: note: expanded from macro 'DECREMENT_DEPTH'
    if (--(g->depth) >= YAJL_MAX_DEPTH) return yajl_gen_error;
                                        ~~~~~~ ^~~~~~~~~~~~~~

Fix missing switch case yajl_tok_comment was not present in the switch case.

Warnings:

compiling ../../../../ext/yajl/yajl_lex.c
../../../../ext/yajl/yajl_lex.c:42:13: warning: enumeration value 'yajl_tok_comment' not handled in switch [-Wswitch]
    switch (tok) {
            ^
../../../../ext/yajl/yajl_lex.c:42:13: note: add missing switch cases
    switch (tok) {
            ^