diff options
| author | Graydon Hoare <[email protected]> | 2010-06-25 16:56:25 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2010-06-25 16:56:25 -0700 |
| commit | 2a2474d497ae19472b4366f6d8d62e9a516787c3 (patch) | |
| tree | 1237367910f02f118433190c434ca8dc688c4afb | |
| parent | Add rust_task::gc(size_t args) method that drops us back into the GC glue. (diff) | |
| download | rust-2a2474d497ae19472b4366f6d8d62e9a516787c3.tar.xz rust-2a2474d497ae19472b4366f6d8d62e9a516787c3.zip | |
Update comment to reflect slightly-improved GC situation.
| -rw-r--r-- | src/boot/be/x86.ml | 10 |
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 |