summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Freutsmiedl <Markus.Freutsmiedl@berner-mattner.com>2015-10-07 11:58:45 +0200
committerMarkus Freutsmiedl <Markus.Freutsmiedl@berner-mattner.com>2015-10-07 11:58:45 +0200
commitb5822f03d50146d30c6f3256a560a2f7632a43ba (patch)
tree1617d7f713265dcd001e7a3736597c26ab6ef8ff
parent4792b52c653ab8cdba740a141ae808226b3ed2c1 (diff)
downloadvSomeIP-b5822f03d50146d30c6f3256a560a2f7632a43ba.tar.gz
vSomeIP 1.3.0p11.3.0p1
-rw-r--r--implementation/routing/src/event.cpp19
-rw-r--r--implementation/routing/src/routing_manager_impl.cpp12
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])) {