| Index: src/unique.h
|
| diff --git a/src/unique.h b/src/unique.h
|
| index 2943ffa6f94c2e184d76acf35cd96750acff864e..b73d7de6feeba2e9f1cc7a62982f02ec2c4faf69 100644
|
| --- a/src/unique.h
|
| +++ b/src/unique.h
|
| @@ -118,8 +118,6 @@ class Unique {
|
| friend class UniqueSet<T>; // Uses internal details for speed.
|
| template <class U>
|
| friend class Unique; // For comparing raw_address values.
|
| - template <class U>
|
| - friend class PrintableUnique; // For automatic up casting.
|
|
|
| protected:
|
| Unique<T>() : raw_address_(NULL) { }
|
| @@ -131,73 +129,6 @@ class Unique {
|
| };
|
|
|
|
|
| -// TODO(danno): At some point if all of the uses of Unique end up using
|
| -// PrintableUnique, then we should merge PrintableUnique into Unique and
|
| -// predicate generating the printable string on a "am I tracing" check.
|
| -template <class T>
|
| -class PrintableUnique : public Unique<T> {
|
| - public:
|
| - // TODO(titzer): make private and introduce a uniqueness scope.
|
| - PrintableUnique() : string_("null") {}
|
| -
|
| - // TODO(titzer): make private and introduce a uniqueness scope.
|
| - explicit PrintableUnique(Zone* zone, Handle<T> handle) : Unique<T>(handle) {
|
| - InitializeString(zone);
|
| - }
|
| -
|
| - // TODO(titzer): this is a hack to migrate to Unique<T> incrementally.
|
| - PrintableUnique(Zone* zone, Address raw_address, Handle<T> handle)
|
| - : Unique<T>(raw_address, handle) {
|
| - InitializeString(zone);
|
| - }
|
| -
|
| - // Constructor for handling automatic up casting.
|
| - // Eg. PrintableUnique<JSFunction> can be passed when PrintableUnique<Object>
|
| - // is expected.
|
| - template <class S>
|
| - PrintableUnique(PrintableUnique<S> uniq) // NOLINT
|
| - : Unique<T>(Handle<T>()) {
|
| -#ifdef DEBUG
|
| - T* a = NULL;
|
| - S* b = NULL;
|
| - a = b; // Fake assignment to enforce type checks.
|
| - USE(a);
|
| -#endif
|
| - this->raw_address_ = uniq.raw_address_;
|
| - this->handle_ = uniq.handle_;
|
| - string_ = uniq.string();
|
| - }
|
| -
|
| - // TODO(titzer): this is a hack to migrate to Unique<T> incrementally.
|
| - static PrintableUnique<T> CreateUninitialized(Zone* zone, Handle<T> handle) {
|
| - return PrintableUnique<T>(zone, reinterpret_cast<Address>(NULL), handle);
|
| - }
|
| -
|
| - static PrintableUnique<T> CreateImmovable(Zone* zone, Handle<T> handle) {
|
| - return PrintableUnique<T>(zone, reinterpret_cast<Address>(*handle), handle);
|
| - }
|
| -
|
| - const char* string() const { return string_; }
|
| -
|
| - private:
|
| - const char* string_;
|
| -
|
| - void InitializeString(Zone* zone) {
|
| - // The stringified version of the parameter must be calculated when the
|
| - // Operator is constructed to avoid accessing the heap.
|
| - HeapStringAllocator temp_allocator;
|
| - StringStream stream(&temp_allocator);
|
| - this->handle_->ShortPrint(&stream);
|
| - SmartArrayPointer<const char> desc_string = stream.ToCString();
|
| - const char* desc_chars = desc_string.get();
|
| - int length = static_cast<int>(strlen(desc_chars));
|
| - char* desc_copy = zone->NewArray<char>(length + 1);
|
| - memcpy(desc_copy, desc_chars, length + 1);
|
| - string_ = desc_copy;
|
| - }
|
| -};
|
| -
|
| -
|
| template <typename T>
|
| class UniqueSet FINAL : public ZoneObject {
|
| public:
|
|
|