aboutsummaryrefslogtreecommitdiff
path: root/src/boot/be
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2010-06-25 16:56:25 -0700
committerGraydon Hoare <[email protected]>2010-06-25 16:56:25 -0700
commit2a2474d497ae19472b4366f6d8d62e9a516787c3 (patch)
tree1237367910f02f118433190c434ca8dc688c4afb /src/boot/be
parentAdd rust_task::gc(size_t args) method that drops us back into the GC glue. (diff)
downloadrust-2a2474d497ae19472b4366f6d8d62e9a516787c3.tar.xz
rust-2a2474d497ae19472b4366f6d8d62e9a516787c3.zip
Update comment to reflect slightly-improved GC situation.
Diffstat (limited to 'src/boot/be')
-rw-r--r--src/boot/be/x86.ml10
1 files changed, 2 insertions, 8 deletions
diff --git a/src/boot/be/x86.ml b/src/boot/be/x86.ml
index 57382c88..16c5f7ea 100644
--- a/src/boot/be/x86.ml
+++ b/src/boot/be/x86.ml
@@ -852,15 +852,9 @@ let gc_glue
(c (ecx_n Abi.tydesc_field_free_glue));
add eax ecx; (* Add to tydesc* *)
- (* FIXME: this path is all wrong, for three reasons.
+ (* FIXME: this path is all wrong
*
- * First, it needs to unlink the values that it frees from the gc
- * chain. Currently it's going to leave dead pointers on it.
- *
- * Second, the *normal* gc-drop path actually has to do that as well;
- * it's not, and that's a problem.
- *
- * Third, it actually needs to walk in two full passes over the chain:
+ * It actually needs to walk in two full passes over the chain:
*
* - In pass #1, it goes through and disposes of all mutable exterior
* slots in each record. That is, rc-- the referent, and then