InjectionTables* InjectionTables::clone() { InjectionTables* newTables = new InjectionTables(); for (int i = 0; i < InstHookTypeInt64Count; i++) { InjectionTableInt64* table = m_int64Tables[i]; if (!table) { newTables->m_int64Tables[i] = nullptr; continue; } InjectionTableInt64* newTable = new InjectionTableInt64(); newTable->insert(table->begin(), table->end()); newTables->m_int64Tables[i] = newTable; } for (int i = 0; i < InstHookTypeSDCount; i++) { InjectionTableSD* table = m_sdTables[i]; if (!table) { newTables->m_sdTables[i] = nullptr; continue; } InjectionTableSD* newTable = new InjectionTableSD(); newTable->insert(table->begin(), table->end()); newTables->m_sdTables[i] = newTable; } return newTables; }