1
0
Fork 0

Codechange: Use unique_ptr instead of raw pointer for string layouts. (#13128)

pull/13129/head
Peter Nelson 2024-11-27 23:38:57 +00:00 committed by GitHub
parent cf7710fb61
commit fe0afef36f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 15 additions and 15 deletions

View File

@ -171,10 +171,10 @@ public:
FontMap runs; ///< Accessed by our ParagraphLayout::nextLine.
FontState state_after; ///< Font state after the line.
ParagraphLayouter *layout; ///< Layout of the line.
std::unique_ptr<ParagraphLayouter> layout = nullptr; ///< Layout of the line.
LineCacheItem() : buffer(nullptr), layout(nullptr) {}
~LineCacheItem() { delete layout; free(buffer); }
LineCacheItem() : buffer(nullptr) {}
~LineCacheItem() { free(buffer); }
};
private:
typedef std::map<LineCacheKey, LineCacheItem, LineCacheCompare> LineCache;

View File

@ -82,9 +82,9 @@ public:
* @param fontMapping THe mapping of the fonts.
* @return The ParagraphLayout instance.
*/
/* static */ ParagraphLayouter *FallbackParagraphLayoutFactory::GetParagraphLayout(char32_t *buff, char32_t *buff_end, FontMap &fontMapping)
/* static */ std::unique_ptr<ParagraphLayouter> FallbackParagraphLayoutFactory::GetParagraphLayout(char32_t *buff, char32_t *buff_end, FontMap &fontMapping)
{
return new FallbackParagraphLayout(buff, buff_end - buff, fontMapping);
return std::make_unique<FallbackParagraphLayout>(buff, buff_end - buff, fontMapping);
}
/**

View File

@ -22,7 +22,7 @@ public:
/** Helper for GetLayouter, to get whether the layouter supports RTL. */
static const bool SUPPORTS_RTL = false;
static ParagraphLayouter *GetParagraphLayout(char32_t *buff, char32_t *buff_end, FontMap &fontMapping);
static std::unique_ptr<ParagraphLayouter> GetParagraphLayout(char32_t *buff, char32_t *buff_end, FontMap &fontMapping);
static size_t AppendToBuffer(char32_t *buff, const char32_t *buffer_last, char32_t c);
};

View File

@ -353,7 +353,7 @@ std::vector<ICURun> ItemizeStyle(std::vector<ICURun> &runs_current, FontMap &fon
return runs;
}
/* static */ ParagraphLayouter *ICUParagraphLayoutFactory::GetParagraphLayout(UChar *buff, UChar *buff_end, FontMap &font_mapping)
/* static */ std::unique_ptr<ParagraphLayouter> ICUParagraphLayoutFactory::GetParagraphLayout(UChar *buff, UChar *buff_end, FontMap &font_mapping)
{
size_t length = buff_end - buff;
/* Can't layout an empty string. */
@ -374,7 +374,7 @@ std::vector<ICURun> ItemizeStyle(std::vector<ICURun> &runs_current, FontMap &fon
run.Shape(buff, length);
}
return new ICUParagraphLayout(std::move(runs), buff, length);
return std::make_unique<ICUParagraphLayout>(std::move(runs), buff, length);
}
/* static */ std::unique_ptr<icu::BreakIterator> ICUParagraphLayoutFactory::break_iterator;

View File

@ -25,7 +25,7 @@ public:
/** Helper for GetLayouter, to get whether the layouter supports RTL. */
static const bool SUPPORTS_RTL = true;
static ParagraphLayouter *GetParagraphLayout(UChar *buff, UChar *buff_end, FontMap &fontMapping);
static std::unique_ptr<ParagraphLayouter> GetParagraphLayout(UChar *buff, UChar *buff_end, FontMap &fontMapping);
static size_t AppendToBuffer(UChar *buff, const UChar *buffer_last, char32_t c);
static void InitializeLayouter();

View File

@ -148,7 +148,7 @@ static CTRunDelegateCallbacks _sprite_font_callback = {
&SpriteFontGetWidth
};
/* static */ ParagraphLayouter *CoreTextParagraphLayoutFactory::GetParagraphLayout(CharType *buff, CharType *buff_end, FontMap &fontMapping)
/* static */ std::unique_ptr<ParagraphLayouter> CoreTextParagraphLayoutFactory::GetParagraphLayout(CharType *buff, CharType *buff_end, FontMap &fontMapping)
{
if (!MacOSVersionIsAtLeast(10, 5, 0)) return nullptr;
@ -209,7 +209,7 @@ static CTRunDelegateCallbacks _sprite_font_callback = {
/* Create and return typesetter for the string. */
CFAutoRelease<CTTypesetterRef> typesetter(CTTypesetterCreateWithAttributedString(str.get()));
return typesetter ? new CoreTextParagraphLayout(std::move(typesetter), buff, length, fontMapping) : nullptr;
return typesetter ? std::make_unique<CoreTextParagraphLayout>(std::move(typesetter), buff, length, fontMapping) : nullptr;
}
/* virtual */ std::unique_ptr<const ParagraphLayouter::Line> CoreTextParagraphLayout::NextLine(int max_width)

View File

@ -52,7 +52,7 @@ public:
* @param fontMapping THe mapping of the fonts.
* @return The ParagraphLayout instance.
*/
static ParagraphLayouter *GetParagraphLayout(CharType *buff, CharType *buff_end, FontMap &fontMapping);
static std::unique_ptr<ParagraphLayouter> GetParagraphLayout(CharType *buff, CharType *buff_end, FontMap &fontMapping);
/**
* Append a wide character to the internal buffer.

View File

@ -276,7 +276,7 @@ static std::vector<SCRIPT_ITEM> UniscribeItemizeString(UniscribeParagraphLayoutF
return items;
}
/* static */ ParagraphLayouter *UniscribeParagraphLayoutFactory::GetParagraphLayout(CharType *buff, CharType *buff_end, FontMap &fontMapping)
/* static */ std::unique_ptr<ParagraphLayouter> UniscribeParagraphLayoutFactory::GetParagraphLayout(CharType *buff, CharType *buff_end, FontMap &fontMapping)
{
int32_t length = buff_end - buff;
/* Can't layout an empty string. */
@ -315,7 +315,7 @@ static std::vector<SCRIPT_ITEM> UniscribeItemizeString(UniscribeParagraphLayoutF
}
}
return new UniscribeParagraphLayout(std::move(ranges), buff);
return std::make_unique<UniscribeParagraphLayout>(std::move(ranges), buff);
}
/* virtual */ std::unique_ptr<const ParagraphLayouter::Line> UniscribeParagraphLayout::NextLine(int max_width)

View File

@ -34,7 +34,7 @@ public:
* @param fontMapping THe mapping of the fonts.
* @return The ParagraphLayout instance.
*/
static ParagraphLayouter *GetParagraphLayout(CharType *buff, CharType *buff_end, FontMap &fontMapping);
static std::unique_ptr<ParagraphLayouter> GetParagraphLayout(CharType *buff, CharType *buff_end, FontMap &fontMapping);
/**
* Append a wide character to the internal buffer.