Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Side by Side Diff: src/objects-inl.h

Issue 797943002: Consistently use only one of virtual/OVERRIDE/FINAL. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Removed temporary hack. Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/objects.cc ('k') | src/optimizing-compiler-thread.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // Review notes: 5 // Review notes:
6 // 6 //
7 // - The use of macros in these inline functions may seem superfluous 7 // - The use of macros in these inline functions may seem superfluous
8 // but it is absolutely needed to make sure gcc generates optimal 8 // but it is absolutely needed to make sure gcc generates optimal
9 // code. gcc is not happy when attempting to inline too deep. 9 // code. gcc is not happy when attempting to inline too deep.
10 // 10 //
(...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 HashTableKey* key) { 510 HashTableKey* key) {
511 return key->AsHandle(isolate); 511 return key->AsHandle(isolate);
512 } 512 }
513 513
514 template <typename Char> 514 template <typename Char>
515 class SequentialStringKey : public HashTableKey { 515 class SequentialStringKey : public HashTableKey {
516 public: 516 public:
517 explicit SequentialStringKey(Vector<const Char> string, uint32_t seed) 517 explicit SequentialStringKey(Vector<const Char> string, uint32_t seed)
518 : string_(string), hash_field_(0), seed_(seed) { } 518 : string_(string), hash_field_(0), seed_(seed) { }
519 519
520 virtual uint32_t Hash() OVERRIDE { 520 uint32_t Hash() OVERRIDE {
521 hash_field_ = StringHasher::HashSequentialString<Char>(string_.start(), 521 hash_field_ = StringHasher::HashSequentialString<Char>(string_.start(),
522 string_.length(), 522 string_.length(),
523 seed_); 523 seed_);
524 524
525 uint32_t result = hash_field_ >> String::kHashShift; 525 uint32_t result = hash_field_ >> String::kHashShift;
526 DCHECK(result != 0); // Ensure that the hash value of 0 is never computed. 526 DCHECK(result != 0); // Ensure that the hash value of 0 is never computed.
527 return result; 527 return result;
528 } 528 }
529 529
530 530
531 virtual uint32_t HashForObject(Object* other) OVERRIDE { 531 uint32_t HashForObject(Object* other) OVERRIDE {
532 return String::cast(other)->Hash(); 532 return String::cast(other)->Hash();
533 } 533 }
534 534
535 Vector<const Char> string_; 535 Vector<const Char> string_;
536 uint32_t hash_field_; 536 uint32_t hash_field_;
537 uint32_t seed_; 537 uint32_t seed_;
538 }; 538 };
539 539
540 540
541 class OneByteStringKey : public SequentialStringKey<uint8_t> { 541 class OneByteStringKey : public SequentialStringKey<uint8_t> {
542 public: 542 public:
543 OneByteStringKey(Vector<const uint8_t> str, uint32_t seed) 543 OneByteStringKey(Vector<const uint8_t> str, uint32_t seed)
544 : SequentialStringKey<uint8_t>(str, seed) { } 544 : SequentialStringKey<uint8_t>(str, seed) { }
545 545
546 virtual bool IsMatch(Object* string) OVERRIDE { 546 bool IsMatch(Object* string) OVERRIDE {
547 return String::cast(string)->IsOneByteEqualTo(string_); 547 return String::cast(string)->IsOneByteEqualTo(string_);
548 } 548 }
549 549
550 virtual Handle<Object> AsHandle(Isolate* isolate) OVERRIDE; 550 Handle<Object> AsHandle(Isolate* isolate) OVERRIDE;
551 }; 551 };
552 552
553 553
554 class SeqOneByteSubStringKey : public HashTableKey { 554 class SeqOneByteSubStringKey : public HashTableKey {
555 public: 555 public:
556 SeqOneByteSubStringKey(Handle<SeqOneByteString> string, int from, int length) 556 SeqOneByteSubStringKey(Handle<SeqOneByteString> string, int from, int length)
557 : string_(string), from_(from), length_(length) { 557 : string_(string), from_(from), length_(length) {
558 DCHECK(string_->IsSeqOneByteString()); 558 DCHECK(string_->IsSeqOneByteString());
559 } 559 }
560 560
561 virtual uint32_t Hash() OVERRIDE { 561 uint32_t Hash() OVERRIDE {
562 DCHECK(length_ >= 0); 562 DCHECK(length_ >= 0);
563 DCHECK(from_ + length_ <= string_->length()); 563 DCHECK(from_ + length_ <= string_->length());
564 const uint8_t* chars = string_->GetChars() + from_; 564 const uint8_t* chars = string_->GetChars() + from_;
565 hash_field_ = StringHasher::HashSequentialString( 565 hash_field_ = StringHasher::HashSequentialString(
566 chars, length_, string_->GetHeap()->HashSeed()); 566 chars, length_, string_->GetHeap()->HashSeed());
567 uint32_t result = hash_field_ >> String::kHashShift; 567 uint32_t result = hash_field_ >> String::kHashShift;
568 DCHECK(result != 0); // Ensure that the hash value of 0 is never computed. 568 DCHECK(result != 0); // Ensure that the hash value of 0 is never computed.
569 return result; 569 return result;
570 } 570 }
571 571
572 virtual uint32_t HashForObject(Object* other) OVERRIDE { 572 uint32_t HashForObject(Object* other) OVERRIDE {
573 return String::cast(other)->Hash(); 573 return String::cast(other)->Hash();
574 } 574 }
575 575
576 virtual bool IsMatch(Object* string) OVERRIDE; 576 bool IsMatch(Object* string) OVERRIDE;
577 virtual Handle<Object> AsHandle(Isolate* isolate) OVERRIDE; 577 Handle<Object> AsHandle(Isolate* isolate) OVERRIDE;
578 578
579 private: 579 private:
580 Handle<SeqOneByteString> string_; 580 Handle<SeqOneByteString> string_;
581 int from_; 581 int from_;
582 int length_; 582 int length_;
583 uint32_t hash_field_; 583 uint32_t hash_field_;
584 }; 584 };
585 585
586 586
587 class TwoByteStringKey : public SequentialStringKey<uc16> { 587 class TwoByteStringKey : public SequentialStringKey<uc16> {
588 public: 588 public:
589 explicit TwoByteStringKey(Vector<const uc16> str, uint32_t seed) 589 explicit TwoByteStringKey(Vector<const uc16> str, uint32_t seed)
590 : SequentialStringKey<uc16>(str, seed) { } 590 : SequentialStringKey<uc16>(str, seed) { }
591 591
592 virtual bool IsMatch(Object* string) OVERRIDE { 592 bool IsMatch(Object* string) OVERRIDE {
593 return String::cast(string)->IsTwoByteEqualTo(string_); 593 return String::cast(string)->IsTwoByteEqualTo(string_);
594 } 594 }
595 595
596 virtual Handle<Object> AsHandle(Isolate* isolate) OVERRIDE; 596 Handle<Object> AsHandle(Isolate* isolate) OVERRIDE;
597 }; 597 };
598 598
599 599
600 // Utf8StringKey carries a vector of chars as key. 600 // Utf8StringKey carries a vector of chars as key.
601 class Utf8StringKey : public HashTableKey { 601 class Utf8StringKey : public HashTableKey {
602 public: 602 public:
603 explicit Utf8StringKey(Vector<const char> string, uint32_t seed) 603 explicit Utf8StringKey(Vector<const char> string, uint32_t seed)
604 : string_(string), hash_field_(0), seed_(seed) { } 604 : string_(string), hash_field_(0), seed_(seed) { }
605 605
606 virtual bool IsMatch(Object* string) OVERRIDE { 606 bool IsMatch(Object* string) OVERRIDE {
607 return String::cast(string)->IsUtf8EqualTo(string_); 607 return String::cast(string)->IsUtf8EqualTo(string_);
608 } 608 }
609 609
610 virtual uint32_t Hash() OVERRIDE { 610 uint32_t Hash() OVERRIDE {
611 if (hash_field_ != 0) return hash_field_ >> String::kHashShift; 611 if (hash_field_ != 0) return hash_field_ >> String::kHashShift;
612 hash_field_ = StringHasher::ComputeUtf8Hash(string_, seed_, &chars_); 612 hash_field_ = StringHasher::ComputeUtf8Hash(string_, seed_, &chars_);
613 uint32_t result = hash_field_ >> String::kHashShift; 613 uint32_t result = hash_field_ >> String::kHashShift;
614 DCHECK(result != 0); // Ensure that the hash value of 0 is never computed. 614 DCHECK(result != 0); // Ensure that the hash value of 0 is never computed.
615 return result; 615 return result;
616 } 616 }
617 617
618 virtual uint32_t HashForObject(Object* other) OVERRIDE { 618 uint32_t HashForObject(Object* other) OVERRIDE {
619 return String::cast(other)->Hash(); 619 return String::cast(other)->Hash();
620 } 620 }
621 621
622 virtual Handle<Object> AsHandle(Isolate* isolate) OVERRIDE { 622 Handle<Object> AsHandle(Isolate* isolate) OVERRIDE {
623 if (hash_field_ == 0) Hash(); 623 if (hash_field_ == 0) Hash();
624 return isolate->factory()->NewInternalizedStringFromUtf8( 624 return isolate->factory()->NewInternalizedStringFromUtf8(
625 string_, chars_, hash_field_); 625 string_, chars_, hash_field_);
626 } 626 }
627 627
628 Vector<const char> string_; 628 Vector<const char> string_;
629 uint32_t hash_field_; 629 uint32_t hash_field_;
630 int chars_; // Caches the number of characters when computing the hash code. 630 int chars_; // Caches the number of characters when computing the hash code.
631 uint32_t seed_; 631 uint32_t seed_;
632 }; 632 };
(...skipping 6885 matching lines...) Expand 10 before | Expand all | Expand 10 after
7518 #undef READ_SHORT_FIELD 7518 #undef READ_SHORT_FIELD
7519 #undef WRITE_SHORT_FIELD 7519 #undef WRITE_SHORT_FIELD
7520 #undef READ_BYTE_FIELD 7520 #undef READ_BYTE_FIELD
7521 #undef WRITE_BYTE_FIELD 7521 #undef WRITE_BYTE_FIELD
7522 #undef NOBARRIER_READ_BYTE_FIELD 7522 #undef NOBARRIER_READ_BYTE_FIELD
7523 #undef NOBARRIER_WRITE_BYTE_FIELD 7523 #undef NOBARRIER_WRITE_BYTE_FIELD
7524 7524
7525 } } // namespace v8::internal 7525 } } // namespace v8::internal
7526 7526
7527 #endif // V8_OBJECTS_INL_H_ 7527 #endif // V8_OBJECTS_INL_H_
OLDNEW
« no previous file with comments | « src/objects.cc ('k') | src/optimizing-compiler-thread.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698