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

Function _omCheckMemory

omalloc/omDebugCheck.c:58–128  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

56}
57
58omError_t _omCheckMemory(char check, omError_t report, OM_FLR_DECL)
59{
60 int i = 0;
61 omSpecBin s_bin;
62 omBin sticky;
63
64 if (check <= 0) return omError_NoError;
65
66 omCheckReturn(omCheckBinPageRegions(check, report, OM_FLR_VAL));
67
68 for (i=0; i<= OM_MAX_BIN_INDEX; i++)
69 {
70 omCheckReturn(omDoCheckBin(&om_StaticBin[i], 1, check, report, OM_FLR_VAL));
71 }
72
73 s_bin = om_SpecBin;
74 omCheckReturn(omCheckGList(s_bin, next, check, omError_MemoryCorrupted, OM_FLR_VAL));
75 while (s_bin != NULL)
76 {
77 omCheckReturn(omDoCheckBin(s_bin->bin, 1, check, report, OM_FLR_VAL));
78 s_bin = s_bin->next;
79 }
80
81 sticky = om_StickyBins;
82 omCheckReturn(omCheckGList(sticky, next, check, omError_MemoryCorrupted, OM_FLR_VAL));
83 while (sticky != NULL)
84 {
85 omCheckReturn(omDoCheckBin(sticky, 1, check, report, OM_FLR_VAL));
86 sticky = sticky->next;
87 }
88
89#ifdef OM_HAVE_TRACK
90 for (i=0; i<= OM_MAX_BIN_INDEX; i++)
91 {
92 omCheckReturn(omDoCheckBin(&om_StaticTrackBin[i], 0, check, report, OM_FLR_VAL));
93 }
94 s_bin = om_SpecTrackBin;
95 omCheckReturn(omCheckGList(s_bin, next, check, omError_MemoryCorrupted, OM_FLR_VAL));
96 while (s_bin != NULL)
97 {
98 omCheckReturn(omDoCheckBin(s_bin->bin, 0, check, report, OM_FLR_VAL));
99 s_bin = s_bin->next;
100 }
101#endif
102
103 if (check > 1)
104 {
105 if (om_KeptAddr != NULL)
106 {
107 void* addr = om_KeptAddr;
108 omCheckReturn(omCheckList(om_KeptAddr, check - 1, (report ? report : omError_KeptAddrListCorrupted), OM_FLR_VAL));
109 while (addr != NULL)
110 {
111 omCheckReturn(omDoCheckAddr(addr, NULL, OM_FKEPT, check, report, OM_FLR_VAL));
112 addr = *((void**) addr);
113 }
114 }
115 if (om_AlwaysKeptAddrs != NULL)

Callers 5

_omDebugAllocFunction · 0.85
_omDebugFreeFunction · 0.85
_omDebugMemoryFunction · 0.85
_omCheckAddrFunction · 0.85
_omCheckBinFunction · 0.85

Calls 3

omCheckBinPageRegionsFunction · 0.85
omDoCheckBinFunction · 0.85
omDoCheckAddrFunction · 0.85

Tested by

no test coverage detected