Repository: celix Updated Branches: refs/heads/develop ac4babf33 -> e2ad48f87
Fixed latest pubsub Coverity issues Project: http://git-wip-us.apache.org/repos/asf/celix/repo Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/e2ad48f8 Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/e2ad48f8 Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/e2ad48f8 Branch: refs/heads/develop Commit: e2ad48f8797e537ac3590a6901f55a156e5b5015 Parents: ac4babf Author: gricciardi <[email protected]> Authored: Tue May 2 15:50:05 2017 +0200 Committer: gricciardi <[email protected]> Committed: Tue May 2 15:50:05 2017 +0200 ---------------------------------------------------------------------- .../private/src/pubsub_serializer_impl.c | 62 +++++++++++--------- 1 file changed, 34 insertions(+), 28 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/e2ad48f8/pubsub/pubsub_serializer_json/private/src/pubsub_serializer_impl.c ---------------------------------------------------------------------- diff --git a/pubsub/pubsub_serializer_json/private/src/pubsub_serializer_impl.c b/pubsub/pubsub_serializer_json/private/src/pubsub_serializer_impl.c index 6145a38..fb46f10 100644 --- a/pubsub/pubsub_serializer_json/private/src/pubsub_serializer_impl.c +++ b/pubsub/pubsub_serializer_json/private/src/pubsub_serializer_impl.c @@ -82,7 +82,7 @@ celix_status_t pubsubSerializer_destroy(pubsub_serializer_t* serializer) { celix_status_t pubsubSerializer_createSerializerMap(pubsub_serializer_t* serializer, bundle_pt bundle, pubsub_msg_serializer_map_t** out) { celix_status_t status = CELIX_SUCCESS; pubsub_msg_serializer_map_t* map = calloc(1, sizeof(*map)); - if (status == CELIX_SUCCESS) { + if (map != NULL) { map->bundle = bundle; map->serializers = hashMap_create(NULL, NULL, NULL, NULL); pubsubSerializer_fillMsgSerializerMap(map->serializers, bundle); @@ -143,7 +143,7 @@ celix_status_t pubsubMsgSerializer_deserialize(pubsub_msg_serializer_impl_t* imp if (rc != 0) { status = CELIX_BUNDLE_EXCEPTION; } - if (status == CELIX_SUCCESS) { + else{ *out = msg; } return status; @@ -230,34 +230,40 @@ static void pubsubSerializer_addMsgSerializerFromBundle(const char *root, bundle if (rc == 0 && msgType != NULL) { char* msgName = NULL; - dynMessage_getName(msgType,&msgName); + rc += dynMessage_getName(msgType,&msgName); version_pt msgVersion = NULL; - dynMessage_getVersion(msgType, &msgVersion); - - unsigned int msgId = utils_stringHash(msgName); - - pubsub_msg_serializer_impl_t* impl = calloc(1, sizeof(*impl)); - impl->dynMsg = msgType; - impl->msgSerializer.handle = impl; - impl->msgSerializer.msgId = msgId; - impl->msgSerializer.msgName = msgName; - impl->msgSerializer.msgVersion = msgVersion; - impl->msgSerializer.serialize = (void*) pubsubMsgSerializer_serialize; - impl->msgSerializer.deserialize = (void*) pubsubMsgSerializer_deserialize; - impl->msgSerializer.freeMsg = (void*) pubsubMsgSerializer_freeMsg; - - bool clash = hashMap_containsKey(msgSerializers, (void*)(uintptr_t)msgId); - if (clash) { - printf("Cannot add msg %s. clash in msg id %d!!\n", msgName, msgId); - free(impl); - dynMessage_destroy(msgType); - } else if ( msgName != NULL && msgVersion != NULL && msgId != 0) { - hashMap_put(msgSerializers, (void*)(uintptr_t)msgId, &impl->msgSerializer); - } else { - printf("Error creating msg serializer\n"); - free(impl); - dynMessage_destroy(msgType); + rc += dynMessage_getVersion(msgType, &msgVersion); + + if(rc == 0 && msgName != NULL && msgVersion != NULL){ + + unsigned int msgId = utils_stringHash(msgName); + + pubsub_msg_serializer_impl_t* impl = calloc(1, sizeof(*impl)); + impl->dynMsg = msgType; + impl->msgSerializer.handle = impl; + impl->msgSerializer.msgId = msgId; + impl->msgSerializer.msgName = msgName; + impl->msgSerializer.msgVersion = msgVersion; + impl->msgSerializer.serialize = (void*) pubsubMsgSerializer_serialize; + impl->msgSerializer.deserialize = (void*) pubsubMsgSerializer_deserialize; + impl->msgSerializer.freeMsg = (void*) pubsubMsgSerializer_freeMsg; + + bool clash = hashMap_containsKey(msgSerializers, (void*)(uintptr_t)msgId); + if (clash) { + printf("Cannot add msg %s. clash in msg id %d!!\n", msgName, msgId); + free(impl); + dynMessage_destroy(msgType); + } else if (msgId != 0) { + hashMap_put(msgSerializers, (void*)(uintptr_t)msgId, &impl->msgSerializer); + } else { + printf("Error creating msg serializer\n"); + free(impl); + dynMessage_destroy(msgType); + } + } + else{ + printf("Cannot retrieve name and/or version from msg\n"); } } else{
