diff --git a/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.cpp b/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.cpp index 28f90f3d0a..6cc045243c 100644 --- a/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.cpp +++ b/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.cpp @@ -331,7 +331,7 @@ AGGTextRenderer::RenderString(const char* string, // Bounds BRect -AGGTextRenderer::Bounds(const char* string, +AGGTextRenderer::Bounds(const char* string, uint32 length, const Transformable& transform) { fFontEngine.hinting(fHinted); @@ -342,7 +342,7 @@ AGGTextRenderer::Bounds(const char* string, // do a UTF8 -> Unicode conversion if (string) { - int32 srcLength = strlen(string); + int32 srcLength = min_c(strlen(string), length); if (srcLength > 0) { int32 dstLength = srcLength * 4; diff --git a/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.h b/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.h index 9fa93c5c15..f75d58009a 100644 --- a/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.h +++ b/src/servers/app/drawing/Painter/font_support/AGGTextRenderer.h @@ -37,6 +37,7 @@ class AGGTextRenderer : public TextRenderer { BPoint* nextCharPos = NULL); virtual BRect Bounds(const char* utf8String, + uint32 length, const Transformable& transform); private: diff --git a/src/servers/app/drawing/Painter/font_support/TextRenderer.h b/src/servers/app/drawing/Painter/font_support/TextRenderer.h index 4be6784390..e654747f2b 100644 --- a/src/servers/app/drawing/Painter/font_support/TextRenderer.h +++ b/src/servers/app/drawing/Painter/font_support/TextRenderer.h @@ -60,7 +60,7 @@ class TextRenderer : public BArchivable { BRect constrainRect, const Transformable& transform) = 0;*/ - virtual BRect Bounds(const char* utf8String, + virtual BRect Bounds(const char* utf8String, uint32 length, const Transformable& transform) = 0; virtual void Update() {};