diff options
author | Markus Freutsmiedl <Markus.Freutsmiedl@berner-mattner.com> | 2015-10-07 11:58:45 +0200 |
---|---|---|
committer | Markus Freutsmiedl <Markus.Freutsmiedl@berner-mattner.com> | 2015-10-07 11:58:45 +0200 |
commit | b5822f03d50146d30c6f3256a560a2f7632a43ba (patch) | |
tree | 1617d7f713265dcd001e7a3736597c26ab6ef8ff | |
parent | 4792b52c653ab8cdba740a141ae808226b3ed2c1 (diff) | |
download | vSomeIP-b5822f03d50146d30c6f3256a560a2f7632a43ba.tar.gz |
vSomeIP 1.3.0p11.3.0p1
-rw-r--r-- | implementation/routing/src/event.cpp | 19 | ||||
-rw-r--r-- | implementation/routing/src/routing_manager_impl.cpp | 12 |
2 files changed, 16 insertions, 15 deletions
diff --git a/implementation/routing/src/event.cpp b/implementation/routing/src/event.cpp index c3dc258..eb86a12 100644 --- a/implementation/routing/src/event.cpp +++ b/implementation/routing/src/event.cpp @@ -171,14 +171,17 @@ void event::notify_one(client_t _client) { bool event::set_payload_helper(std::shared_ptr<payload> _payload) { std::shared_ptr<payload> its_payload = message_->get_payload(); - bool is_change = (its_payload->get_length() != _payload->get_length()); - if (!is_change) { - std::size_t its_pos = 0; - const byte_t *its_old_data = its_payload->get_data(); - const byte_t *its_new_data = _payload->get_data(); - while (!is_change && its_pos < its_payload->get_length()) { - is_change = (*its_old_data++ != *its_new_data++); - its_pos++; + bool is_change(!is_field_); + if(is_field_) { + is_change = (its_payload->get_length() != _payload->get_length()); + if (!is_change) { + std::size_t its_pos = 0; + const byte_t *its_old_data = its_payload->get_data(); + const byte_t *its_new_data = _payload->get_data(); + while (!is_change && its_pos < its_payload->get_length()) { + is_change = (*its_old_data++ != *its_new_data++); + its_pos++; + } } } is_set_ = true; diff --git a/implementation/routing/src/routing_manager_impl.cpp b/implementation/routing/src/routing_manager_impl.cpp index 254cab4..d22a76e 100644 --- a/implementation/routing/src/routing_manager_impl.cpp +++ b/implementation/routing/src/routing_manager_impl.cpp @@ -574,13 +574,11 @@ void routing_manager_impl::on_message( = find_event(_service, _instance, its_method); if (its_event) { uint32_t its_length = utility::get_payload_size(_data, _size); - if (its_length > 0) { // set - std::shared_ptr<payload> its_payload = - runtime::get()->create_payload( - &_data[VSOMEIP_PAYLOAD_POS], - its_length); - its_event->set_payload(its_payload); - } + std::shared_ptr<payload> its_payload = + runtime::get()->create_payload( + &_data[VSOMEIP_PAYLOAD_POS], + its_length); + its_event->set_payload(its_payload); if (!utility::is_request_no_return( _data[VSOMEIP_MESSAGE_TYPE_POS])) { |