Some small improvements to RAM usage
Originally committed to SVN as r99.
This commit is contained in:
parent
fb579fa948
commit
d759aae2b3
3 changed files with 24 additions and 1 deletions
|
@ -924,6 +924,23 @@ void AssFile::AddToRecent(wxString file) {
|
|||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////
|
||||
// Compress/decompress for storage on stack
|
||||
void AssFile::CompressForStack(bool compress) {
|
||||
AssDialogue *diag;
|
||||
for (entryIter cur=Line.begin();cur!=Line.end();cur++) {
|
||||
diag = AssEntry::GetAsDialogue(*cur);
|
||||
if (diag) {
|
||||
if (compress) {
|
||||
diag->data.Clear();
|
||||
diag->ClearBlocks();
|
||||
}
|
||||
else diag->UpdateData();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////
|
||||
// Checks if file is modified
|
||||
bool AssFile::IsModified() {
|
||||
|
@ -954,6 +971,7 @@ void AssFile::FlagAsModified() {
|
|||
void AssFile::StackPush() {
|
||||
// Places copy on stack
|
||||
AssFile *curcopy = new AssFile(*top);
|
||||
curcopy->CompressForStack(true);
|
||||
UndoStack.push_back(curcopy);
|
||||
StackModified = true;
|
||||
|
||||
|
@ -983,8 +1001,10 @@ void AssFile::StackPop() {
|
|||
|
||||
if (!UndoStack.empty()) {
|
||||
//delete top;
|
||||
top->CompressForStack(true);
|
||||
RedoStack.push_back(top);
|
||||
top = UndoStack.back();
|
||||
top->CompressForStack(false);
|
||||
UndoStack.pop_back();
|
||||
Popping = true;
|
||||
}
|
||||
|
@ -1007,8 +1027,10 @@ void AssFile::StackRedo() {
|
|||
}
|
||||
|
||||
if (!RedoStack.empty()) {
|
||||
top->CompressForStack(true);
|
||||
UndoStack.push_back(top);
|
||||
top = RedoStack.back();
|
||||
top->CompressForStack(false);
|
||||
RedoStack.pop_back();
|
||||
Popping = true;
|
||||
//StackModified = false;
|
||||
|
|
|
@ -97,6 +97,7 @@ public:
|
|||
bool IsModified(); // Returns if file has unmodified changes
|
||||
void FlagAsModified(); // Flag file as being modified, will automatically put a copy on stack
|
||||
void Clear(); // Wipes file
|
||||
void CompressForStack(bool compress); // Compress/decompress for storage on stack
|
||||
void LoadDefault(bool noline=true); // Loads default file. Pass true to prevent it from adding a default line too
|
||||
void InsertStyle(AssStyle *style); // Inserts a style to file
|
||||
wxArrayString GetStyles(); // Gets a list of all styles available
|
||||
|
|
|
@ -39,7 +39,7 @@ Please visit http://aegisub.net to download latest version
|
|||
- Added a simple audio resync method afor video playback. (AMZ)
|
||||
- Audio timing will now apply to all selected lines, as well as active line. (AMZ)
|
||||
- Added a volume slider bar to audio mode. (AMZ)
|
||||
- Fixed some internal workings, which should make Aegisub use considerably less RAM (especially for large Karaoke files, 3x less RAM usage measured). (AMZ)
|
||||
- Fixed some internal workings, which should make Aegisub use considerably less RAM (especially for large Karaoke files, 3-4x less RAM usage was measured with a 9 MB file). (AMZ)
|
||||
- Aegisub will now dump the stack to stack.txt when it crashes with a fatal exception, which might or might not work. (AMZ)
|
||||
- Audio display in SSA mode will no longer ignore clicks if it wasn't focused (AMZ)
|
||||
|
||||
|
|
Loading…
Reference in a new issue