void MPackageManagerNPK::cleanup() { if(m_fileOpenHook) { if(M_getFileOpenHook() == m_fileOpenHook) M_registerFileOpenHook(0); SAFE_DELETE(m_fileOpenHook); } if(m_packages) { for(int i = 0; i < M_MAX_PACKAGES; ++i) { if(m_packages[i] != 0) { MPackageNPK* pack = (MPackageNPK*)m_packages[i]; npk_package_close(pack->package); delete pack; m_packages[i] = 0; } } SAFE_DELETE_ARRAY(m_packages); } }
MEmbedFileOpenHook::MEmbedFileOpenHook() { M_PROFILE_SCOPE(MEmbedFileOpenHook::MEmbedFileOpenHook); m_DefaultFileOpenHook = M_getFileOpenHook(); M_registerFileOpenHook(this); }
void MPackageManagerNPK::init() { if(! m_fileOpenHook) { m_fileOpenHook = new MPackageFileOpenHook; MPackageNPK** packages = new MPackageNPK*[M_MAX_PACKAGES]; m_packages = (MPackage*)packages; for(int i = 0; i < M_MAX_PACKAGES; ++i) m_packages[i] = 0; } M_registerFileOpenHook(m_fileOpenHook); m_writable = 0; }