X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=formats%2Fctf%2Ftypes%2Fenum.c;h=9461af625479f19c9788dd0d0fc37cdf13295ae7;hb=f3985ab106d89d8e764c1a8dd0c8bda09b755d10;hp=c2b50fd532f1b3736a360f1e4bdab5e9cf80c66f;hpb=01c76b246be85b5d9c8e99813950fb194c9f714f;p=babeltrace.git diff --git a/formats/ctf/types/enum.c b/formats/ctf/types/enum.c index c2b50fd5..9461af62 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 bt_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 bt_definition *definition) { struct definition_enum *enum_definition = container_of(definition, struct definition_enum, p);