MCPcopy Create free account
hub / github.com/Singular/Singular / omDoCheckAddr

Function omDoCheckAddr

omalloc/omDebugCheck.c:146–175  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

144
145
146omError_t omDoCheckAddr(void* addr, void* bin_size, omTrackFlags_t flags, char level,
147 omError_t report, OM_FLR_DECL)
148{
149 if (level <= 0) return omError_NoError;
150 omAssume(! ((flags & OM_FSIZE) && (flags & OM_FBIN)));
151
152 if (addr == NULL)
153 {
154 omCheckReturnError(!(flags & OM_FSLOPPY), omError_NullAddr);
155 return omError_NoError;
156 }
157 if ((flags & OM_FSIZE) && bin_size == NULL) return omError_NoError;
158 omAddrCheckReturn(omCheckPtr(addr, report, OM_FLR_VAL));
159 omAddrCheckReturnError((flags & OM_FALIGN) && !OM_IS_STRICT_ALIGNED(addr), omError_UnalignedAddr);
160 omAddrCheckReturnError((flags & OM_FBIN) && !omIsKnownTopBin((omBin) bin_size, 1), omError_UnknownBin);
161
162 if (omIsBinPageAddr(addr))
163 {
164#ifdef OM_HAVE_TRACK
165 if (omIsBinAddrTrackAddr(addr))
166 return omCheckTrackAddr(addr, bin_size, flags, level, report, OM_FLR_VAL);
167 else
168#endif
169 return omDoCheckBinAddr(addr, bin_size, flags, level, report, OM_FLR_VAL);
170 }
171 else
172 {
173 return omDoCheckLargeAddr(addr, bin_size, flags, level, report, OM_FLR_VAL);
174 }
175}
176
177
178

Callers 3

__omDebugFreeFunction · 0.85
_omCheckAddrFunction · 0.85
_omCheckMemoryFunction · 0.85

Calls 5

omCheckPtrFunction · 0.85
omIsKnownTopBinFunction · 0.85
omCheckTrackAddrFunction · 0.85
omDoCheckBinAddrFunction · 0.85
omDoCheckLargeAddrFunction · 0.85

Tested by

no test coverage detected