aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/PositionCache.h
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2021-05-07 23:25:56 +1000
committerNeil <nyamatongwe@gmail.com>2021-05-07 23:25:56 +1000
commit8827755d994e9ebb49097da51a4e460c56385774 (patch)
treed930b836de6b4fe60be2f061cee2d491db58d00c /src/PositionCache.h
parent7d47304ca36474000293f267dda39483113c86e3 (diff)
downloadscintilla-mirror-8827755d994e9ebb49097da51a4e460c56385774.tar.gz
Use shared_ptr for LineLayoutCache as it simpifies lifetime management.
AutoLineLayout and other code no longer needed so removed.
Diffstat (limited to 'src/PositionCache.h')
-rw-r--r--src/PositionCache.h7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/PositionCache.h b/src/PositionCache.h
index 41da53bcf..4c62900e8 100644
--- a/src/PositionCache.h
+++ b/src/PositionCache.h
@@ -61,7 +61,6 @@ private:
int lenLineStarts;
/// Drawing is only performed for @a maxLineLength characters on each line.
Sci::Line lineNumber;
- bool inCache;
public:
enum { wrapWidthInfinite = 0x7ffffff };
@@ -160,10 +159,9 @@ public:
};
private:
Cache level;
- std::vector<std::unique_ptr<LineLayout>>cache;
+ std::vector<std::shared_ptr<LineLayout>>cache;
bool allInvalidated;
int styleClock;
- int useCount;
size_t EntryForLine(Sci::Line line) const noexcept;
void AllocateForLevel(Sci::Line linesOnScreen, Sci::Line linesInDoc);
public:
@@ -178,9 +176,8 @@ public:
void Invalidate(LineLayout::ValidLevel validity_) noexcept;
void SetLevel(Cache level_) noexcept;
Cache GetLevel() const noexcept { return level; }
- LineLayout *Retrieve(Sci::Line lineNumber, Sci::Line lineCaret, int maxChars, int styleClock_,
+ std::shared_ptr<LineLayout> Retrieve(Sci::Line lineNumber, Sci::Line lineCaret, int maxChars, int styleClock_,
Sci::Line linesOnScreen, Sci::Line linesInDoc);
- void Dispose(LineLayout *ll) noexcept;
};
class PositionCacheEntry {