示例#1
0
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;
}