X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=formats%2Fctf%2Ftypes%2Fenum.c;h=9371b27735aae6b192555c7bb3c41b6cee0e9999;hp=c2b50fd532f1b3736a360f1e4bdab5e9cf80c66f;hb=1cf393f63db4dce618515749d5549564d1313ee4;hpb=64fa3fec6c28f1d077812b4bfa06ae73b0f5999d diff --git a/formats/ctf/types/enum.c b/formats/ctf/types/enum.c index c2b50fd5..9371b277 100644 --- a/formats/ctf/types/enum.c +++ b/formats/ctf/types/enum.c @@ -16,13 +16,22 @@ * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. */ #include +#include #include #include -int ctf_enum_read(struct stream_pos *ppos, struct definition *definition) +int ctf_enum_read(struct bt_stream_pos *ppos, struct definition *definition) { struct definition_enum *enum_definition = container_of(definition, struct definition_enum, p); @@ -38,13 +47,21 @@ int ctf_enum_read(struct stream_pos *ppos, struct definition *definition) ret = ctf_integer_read(ppos, &integer_definition->p); if (ret) return ret; - if (!integer_declaration->signedness) - qs = enum_uint_to_quark_set(enum_declaration, + if (!integer_declaration->signedness) { + qs = bt_enum_uint_to_quark_set(enum_declaration, integer_definition->value._unsigned); - else - qs = enum_int_to_quark_set(enum_declaration, + if (!qs) { + fprintf(stderr, "[warning] Unknown value %" PRIu64 " in enum.\n", + integer_definition->value._unsigned); + } + } else { + qs = bt_enum_int_to_quark_set(enum_declaration, integer_definition->value._signed); - assert(qs); + if (!qs) { + fprintf(stderr, "[warning] Unknown value %" PRId64 " in enum.\n", + integer_definition->value._signed); + } + } /* unref previous quark set */ if (enum_definition->value) g_array_unref(enum_definition->value); @@ -52,7 +69,7 @@ int ctf_enum_read(struct stream_pos *ppos, struct definition *definition) return 0; } -int ctf_enum_write(struct stream_pos *pos, struct definition *definition) +int ctf_enum_write(struct bt_stream_pos *pos, struct definition *definition) { struct definition_enum *enum_definition = container_of(definition, struct definition_enum, p);