Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

- Fixed: StatusBar and screen need to be barriered, because they are …

…roots

  but can also change at runtime.
- Fixed: Objects that are forcibly deleted outside the GC need to be removed
  from the gray list too.


git-svn-id: http://mancubus.net/svn/hosted/zdoom/zdoom/branches/gc@786 a95907f1-e10c-0410-b46f-9e587ccb1026
  • Loading branch information...
commit f5719d093fdfa5586d813400ac67eaf10f092947 1 parent 2565f24
rheit authored
8 docs/rh-log.txt
View
@@ -1,7 +1,13 @@
+March 6, 2008
+- Fixed: StatusBar and screen need to be barriered, because they are roots
+ but can also change at runtime.
+- Fixed: Objects that are forcibly deleted outside the GC need to be removed
+ from the gray list too.
+
March 5, 2008
- Fixed: Thinkers needed write barriers when they were removed from their
lists.
-- Fixed: DLevelScript::Link() and Unlink() were needed write barriers.
+- Fixed: DLevelScript::Link() and Unlink() needed write barriers.
March 1, 2008 (Changes by Graf Zahl)
- Fixed: When starting a level while the music has been paused S_Start has
13 src/dobject.cpp
View
@@ -394,6 +394,19 @@ DObject::~DObject ()
break;
}
}
+
+ // If it's gray, also unlink it from the gray list.
+ if (this->IsGray())
+ {
+ for (probe = &GC::Gray; *probe != NULL; probe = &((*probe)->GCNext))
+ {
+ if (*probe == this)
+ {
+ *probe = GCNext;
+ break;
+ }
+ }
+ }
}
}
1  src/g_level.cpp
View
@@ -1591,6 +1591,7 @@ void G_InitNew (const char *mapname, bool bTitleLevel)
StatusBar = new DBaseStatusBar (0);
}
}
+ GC::WriteBarrier(StatusBar);
StatusBar->AttachToPlayer (&players[consoleplayer]);
StatusBar->NewGame ();
setsizeneeded = true;
1  src/v_video.cpp
View
@@ -1427,6 +1427,7 @@ bool V_DoModeSetup (int width, int height, int bits)
}
screen = buff;
+ GC::WriteBarrier(screen);
screen->SetFont (SmallFont);
screen->SetGamma (Gamma);
Please sign in to comment.
Something went wrong with that request. Please try again.