MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / removeSegment

Method removeSegment

src/jrd/TempSpace.cpp:154–181  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

152}
153
154void TempSpace::FreeSegmentBySize::removeSegment(Segment* const segment)
155{
156 if (segment->next == nullptr)
157 {
158 if (!m_items.locate(segment->size))
159 fb_assert(false);
160
161 SegmentsStack* cur = &m_items.current();
162 if (segment->prev)
163 {
164 segment->prev->next = nullptr;
165 cur->tail = segment->prev;
166 segment->prev = nullptr;
167 }
168 else
169 m_items.fastRemove();
170 }
171 else
172 {
173 if (segment->prev)
174 segment->prev->next = segment->next;
175
176 segment->next->prev = segment->prev;
177
178 segment->prev = nullptr;
179 segment->next = nullptr;
180 }
181}
182
183TempSpace::Segment* TempSpace::FreeSegmentBySize::getSegment(FB_SIZE_T size)
184{

Callers 3

allocateSpaceMethod · 0.80
releaseSpaceMethod · 0.80
allocateBatchMethod · 0.80

Calls 3

locateMethod · 0.45
currentMethod · 0.45
fastRemoveMethod · 0.45

Tested by

no test coverage detected