-
-
Notifications
You must be signed in to change notification settings - Fork 862
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[drape] Fixed MutableLabelHandle mutation buffer's size. #8131
Conversation
Please mention the original change that has caused the regression. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The original change was done 10 years ago. |
@vng looks like all max 50 chars/vertexes should always be rendered for mutable labels, including the original string and remaining empty characters. Maybe add a suffix from a space char for up to max 50 chars limit? |
ba0c801
to
c180913
Compare
Why, then, did this issue emerge in this release? |
It has been reproduced in many other releases since the beginning of OM. Now we have got a detailed stack trace and a better understanding of what's going on. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder how it was cleared before? :)
drape_frontend/gui/gui_text.cpp
Outdated
auto const dataPointer = static_cast<MutableLabel::DynamicVertex *>(mutator->AllocateMutationBuffer(byteCount)); | ||
std::copy(result.m_buffer.begin(), result.m_buffer.end(), dataPointer); | ||
|
||
dp::BindingInfo const & binding = MutableLabel::DynamicVertex::GetBindingInfo(); | ||
dp::OverlayHandle::TOffsetNode offsetNode = GetOffsetNode(binding.GetID()); | ||
dp::OverlayHandle::TOffsetNode const node = GetOffsetNode(binding.GetID()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dp::OverlayHandle::TOffsetNode const node = GetOffsetNode(binding.GetID()); | |
dp::OverlayHandle::TOffsetNode const & node = GetOffsetNode(binding.GetID()); |
drape_frontend/gui/gui_text.cpp
Outdated
text.append("..."); | ||
} | ||
|
||
strings::UniString uniText = bidi::log2vis(text); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
strings::UniString uniText = bidi::log2vis(text); | |
strings::UniString const uniText = bidi::log2vis(text); |
IDK, the mutator always read m_maxLength from the buffer, luckily to have some stuff in this buffer, that was interpreted as empty vertices .. |
Signed-off-by: Viktor Govako <viktor.govako@gmail.com>
Should fix #8128 and linked issues.
Fixes #8127
Fixes #8108