Closed
Bug 1273276
Opened 9 years ago
Closed 9 years ago
Rename HeapPtr to GCPtr
Categories
(Core :: JavaScript: GC, defect)
Core
JavaScript: GC
Tracking
()
RESOLVED
FIXED
mozilla49
Tracking | Status | |
---|---|---|
firefox49 | --- | fixed |
People
(Reporter: terrence, Assigned: terrence)
References
Details
Attachments
(1 file, 1 obsolete file)
156.44 KB,
patch
|
jonco
:
review+
|
Details | Diff | Splinter Review |
I'm a bit less certain about this renaming. For one it's almost 400 lines: I really did not expect us to have 4x more HeapPtr than RelocatablePtr! It's also a longer and less convenient name. My initial intent was to make the name longer to discourage use since there are few places we use it and accidental usage could be disastrous. While the second of these is still true and (I believe merits the shorter GCPtr name), the first of these is definitely *not* true.
Advantages:
* Unambiguously different from Heap<T>.
* More meaningful name.
Disadvantages:
* Lots of churn for dubious gain.
* Longer name.
I don't think there's as clear a win here. I'm curious what people think.
Attachment #8753059 -
Flags: feedback?(sphink)
Attachment #8753059 -
Flags: feedback?(jcoppeard)
Comment 1•9 years ago
|
||
Comment on attachment 8753059 [details] [diff] [review]
02_rename_HeapPtr_to_GCManagedPtr-v0.diff
Cancelling feedback as we have a new plan in bug 1273220 comment 1.
Attachment #8753059 -
Flags: feedback?(sphink)
Attachment #8753059 -
Flags: feedback?(jcoppeard)
Assignee | ||
Comment 2•9 years ago
|
||
As we discussed.
Attachment #8753059 -
Attachment is obsolete: true
Attachment #8753995 -
Flags: review?(jcoppeard)
Assignee | ||
Updated•9 years ago
|
Summary: Rename HeapPtr to GCManagedPtr → Rename HeapPtr to GCPtr
Comment 3•9 years ago
|
||
Comment on attachment 8753995 [details] [diff] [review]
02_rename_HeapPtr_to_GCPtr-v1.diff
Review of attachment 8753995 [details] [diff] [review]:
-----------------------------------------------------------------
This looks good.
One thing though, I think we should go with GCPtrValue rather than GCPtr<Value> for consistency with the rest of them. I don't think this is so bad.
::: js/src/gc/Barrier.h
@@ +127,1 @@
> * There are also special classes HeapValue and HeapId, which barrier js::Value
HeapValue and HeapId need updating in the line above.
@@ +140,5 @@
> * | WriteBarrieredBase base class which provides common write operations
> * | | | | |
> * | | | | PreBarriered provides pre-barriers only
> * | | | |
> + * | | | GCPtr provides pre- and post-barriers
Comment alignment is off.
@@ +145,4 @@
> * | | |
> * | | RelocatablePtr provides pre- and post-barriers and is relocatable
> * | |
> + * | HeapSlot similar to GCPtr, but tailored to slots storage
Not sure what HeapSlot is now, GCSlot?
@@ +414,5 @@
> * used in contexts where it may be implicitly moved or deleted, e.g. most
> * containers.
> *
> * Not to be confused with JS::Heap<T>. This is a different class from the
> * external interface and implements substantially different semantics.
I guess this comment can go now it's called something different.
::: js/src/jsiter.h
@@ +31,5 @@
> class PropertyIteratorObject;
>
> struct NativeIterator
> {
> + GCPtrObject obj; // Object being iterated.
Comment alignment is off.
::: js/src/jsscript.h
@@ +126,5 @@
> uint32_t parent; // Index of parent block scope in notes, or UINT32_MAX.
> };
>
> struct ConstArray {
> + js::GCPtr<Value>* vector; // array of indexed constant values
Comment alignment is off.
@@ +132,5 @@
> };
>
> struct ObjectArray {
> + js::GCPtrObject* vector; // Array of indexed objects.
> + uint32_t length; // Count of indexed objects.
Ditto above.
::: js/src/vm/Shape.h
@@ -585,5 @@
> - to many-kids data structure */
> - HeapPtrShape* listp; /* dictionary list starting at shape_
> - has a double-indirect back pointer,
> - either to the next shape's parent if not
> - last, else to obj->shape_ */
Can you fix comment alignements above, including |parent| which was already off?
Attachment #8753995 -
Flags: review?(jcoppeard) → review+
Assignee | ||
Comment 4•9 years ago
|
||
(In reply to Jon Coppeard (:jonco) from comment #3)
> Comment on attachment 8753995 [details] [diff] [review]
> 02_rename_HeapPtr_to_GCPtr-v1.diff
>
> Review of attachment 8753995 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> This looks good.
>
> One thing though, I think we should go with GCPtrValue rather than
> GCPtr<Value> for consistency with the rest of them. I don't think this is
> so bad.
Yeah, it's better to be consistent. Fixed.
> ::: js/src/gc/Barrier.h
> @@ +127,1 @@
> > * There are also special classes HeapValue and HeapId, which barrier js::Value
>
> HeapValue and HeapId need updating in the line above.
Actually, that's lines totally wrong now that we're using the same wrapper for pointers and Value/jsid. I've just removed it.
> @@ +140,5 @@
> > * | WriteBarrieredBase base class which provides common write operations
> > * | | | | |
> > * | | | | PreBarriered provides pre-barriers only
> > * | | | |
> > + * | | | GCPtr provides pre- and post-barriers
>
> Comment alignment is off.
D'oh! Thought I had fixed that one. Stuff kinda got confusing for awhile when I inverted this series.
> @@ +145,4 @@
> > * | | |
> > * | | RelocatablePtr provides pre- and post-barriers and is relocatable
> > * | |
> > + * | HeapSlot similar to GCPtr, but tailored to slots storage
>
> Not sure what HeapSlot is now, GCSlot?
How about just Slot? It's pretty generic, but I think it's the only place in spidermonkey that uses the term. I'll post a separate patch with that change.
> @@ +414,5 @@
> > * used in contexts where it may be implicitly moved or deleted, e.g. most
> > * containers.
> > *
> > * Not to be confused with JS::Heap<T>. This is a different class from the
> > * external interface and implements substantially different semantics.
>
> I guess this comment can go now it's called something different.
\o/
Assignee | ||
Comment 5•9 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/f95d305dc0f804dea500ea8910683668f8729c7e
Bug 1273276 - Rename HeapPtr to GCPtr; r=jonco
Comment 6•9 years ago
|
||
bugherder |
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla49
You need to log in
before you can comment on or make changes to this bug.
Description
•