mirror of
https://github.com/OpenFusionProject/OpenFusion.git
synced 2024-12-22 19:30:05 +00:00
Add Address Sanitizer suppression list.
This replaces the unnecessary deallocations on program termination. Passing in the suppression list environment variable via setenv() doesn't seem to work, so I've added a comment in the Makefile to explain invocation.
This commit is contained in:
parent
c33f218e56
commit
006d1000c7
1
Makefile
1
Makefile
@ -1,6 +1,7 @@
|
||||
CC=clang
|
||||
CXX=clang++
|
||||
# -w suppresses all warnings (the part that's commented out helps me find memory leaks, it ruins performance though!)
|
||||
# If compiling with ASAN, invoke like this: $ LSAN_OPTIONS=suppressions=suppr.txt bin/fusion
|
||||
CFLAGS=-O3 #-g3 -fsanitize=address
|
||||
CXXFLAGS=-Wall -Wno-unknown-pragmas -std=c++17 -O2 -DPROTOCOL_VERSION=$(PROTOCOL_VERSION) -DGIT_VERSION=\"$(shell git describe --tags)\" #-g3 -fsanitize=address
|
||||
LDFLAGS=-lpthread -ldl #-g3 -fsanitize=address
|
||||
|
@ -6,12 +6,6 @@
|
||||
std::map<std::pair<int, int>, Chunk*> ChunkManager::chunks;
|
||||
|
||||
void ChunkManager::init() {} // stubbed
|
||||
void ChunkManager::cleanup() {
|
||||
// cleans up all the allocated chunks
|
||||
for (auto& pair : chunks) {
|
||||
delete pair.second;
|
||||
}
|
||||
}
|
||||
|
||||
void ChunkManager::addNPC(int posX, int posY, int32_t id) {
|
||||
std::pair<int, int> pos = grabChunk(posX, posY);
|
||||
|
@ -189,19 +189,6 @@ void TableData::init() {
|
||||
}
|
||||
}
|
||||
|
||||
void TableData::cleanup() {
|
||||
/*
|
||||
* This is just to shut the address sanitizer up. Dynamically allocated data
|
||||
* doesn't need to be cleaned up if it's supposed to last the program's full runtime.
|
||||
*/
|
||||
for (auto& pair : MissionManager::Rewards)
|
||||
delete pair.second;
|
||||
for (auto& pair : MissionManager::Tasks)
|
||||
delete pair.second;
|
||||
for (auto& pair : NPCManager::NPCs)
|
||||
delete pair.second;
|
||||
}
|
||||
|
||||
/*
|
||||
* Some item categories either don't possess iEquipLoc or use a different value for item type.
|
||||
*/
|
||||
|
@ -49,9 +49,6 @@ void terminate(int arg) {
|
||||
shardThread->join();
|
||||
}
|
||||
|
||||
TableData::cleanup();
|
||||
ChunkManager::cleanup();
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user