MCPcopy Create free account
hub / github.com/ProgerXP/Notepad2e / AllocateForLevel

Method AllocateForLevel

scintilla/src/PositionCache.cxx:225–248  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

223}
224
225void LineLayoutCache::AllocateForLevel(int linesOnScreen, int linesInDoc) {
226 PLATFORM_ASSERT(useCount == 0);
227 size_t lengthForLevel = 0;
228 if (level == llcCaret) {
229 lengthForLevel = 1;
230 } else if (level == llcPage) {
231 lengthForLevel = linesOnScreen + 1;
232 } else if (level == llcDocument) {
233 lengthForLevel = linesInDoc;
234 }
235 if (lengthForLevel > cache.size()) {
236 Deallocate();
237 Allocate(lengthForLevel);
238 } else {
239 if (lengthForLevel < cache.size()) {
240 for (size_t i = lengthForLevel; i < cache.size(); i++) {
241 delete cache[i];
242 cache[i] = 0;
243 }
244 }
245 cache.resize(lengthForLevel);
246 }
247 PLATFORM_ASSERT(cache.size() == lengthForLevel);
248}
249
250void LineLayoutCache::Deallocate() {
251 PLATFORM_ASSERT(useCount == 0);

Callers

nothing calls this directly

Calls 1

sizeMethod · 0.80

Tested by

no test coverage detected