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

Side by Side Diff: content/browser/gpu/gpu_blacklist.cc

Issue 7748029: Fix a memory leak in GpuBlacklist. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 9 years, 3 months 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 | Annotate | Revision Log
« no previous file with comments | « content/browser/gpu/gpu_blacklist.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium 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 #include "content/browser/gpu/gpu_blacklist.h" 5 #include "content/browser/gpu/gpu_blacklist.h"
6 6
7 #include "base/json/json_reader.h" 7 #include "base/json/json_reader.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/string_number_conversions.h" 9 #include "base/string_number_conversions.h"
10 #include "base/string_piece.h" 10 #include "base/string_piece.h"
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 else if (string_op == "contains") 200 else if (string_op == "contains")
201 return kContains; 201 return kContains;
202 else if (string_op == "beginwith") 202 else if (string_op == "beginwith")
203 return kBeginWith; 203 return kBeginWith;
204 else if (string_op == "endwith") 204 else if (string_op == "endwith")
205 return kEndWith; 205 return kEndWith;
206 return kUnknown; 206 return kUnknown;
207 } 207 }
208 208
209 // static 209 // static
210 GpuBlacklist::GpuBlacklistEntry* 210 GpuBlacklist::ScopedGpuBlacklistEntry
211 GpuBlacklist::GpuBlacklistEntry::GetGpuBlacklistEntryFromValue( 211 GpuBlacklist::GpuBlacklistEntry::GetGpuBlacklistEntryFromValue(
212 DictionaryValue* value, bool top_level) { 212 DictionaryValue* value, bool top_level) {
213 DCHECK(value); 213 DCHECK(value);
214 ScopedGpuBlacklistEntry entry(new GpuBlacklistEntry()); 214 ScopedGpuBlacklistEntry entry(new GpuBlacklistEntry());
215 215
216 size_t dictionary_entry_count = 0; 216 size_t dictionary_entry_count = 0;
217 217
218 if (top_level) { 218 if (top_level) {
219 uint32 id; 219 uint32 id;
220 if (!value->GetInteger("id", reinterpret_cast<int*>(&id)) || 220 if (!value->GetInteger("id", reinterpret_cast<int*>(&id)) ||
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 DictionaryValue* browser_version_value = NULL; 413 DictionaryValue* browser_version_value = NULL;
414 // browser_version is processed in LoadGpuBlacklist(). 414 // browser_version is processed in LoadGpuBlacklist().
415 if (value->GetDictionary("browser_version", &browser_version_value)) 415 if (value->GetDictionary("browser_version", &browser_version_value))
416 dictionary_entry_count++; 416 dictionary_entry_count++;
417 } 417 }
418 418
419 if (value->size() != dictionary_entry_count) { 419 if (value->size() != dictionary_entry_count) {
420 LOG(WARNING) << "Entry with unknown fields " << entry->id(); 420 LOG(WARNING) << "Entry with unknown fields " << entry->id();
421 entry->contains_unknown_fields_ = true; 421 entry->contains_unknown_fields_ = true;
422 } 422 }
423 return entry.release(); 423 return entry;
424 } 424 }
425 425
426 GpuBlacklist::GpuBlacklistEntry::GpuBlacklistEntry() 426 GpuBlacklist::GpuBlacklistEntry::GpuBlacklistEntry()
427 : id_(0), 427 : id_(0),
428 vendor_id_(0), 428 vendor_id_(0),
429 contains_unknown_fields_(false), 429 contains_unknown_fields_(false),
430 contains_unknown_features_(false) { 430 contains_unknown_features_(false) {
431 } 431 }
432 432
433 bool GpuBlacklist::GpuBlacklistEntry::SetId(uint32 id) { 433 bool GpuBlacklist::GpuBlacklistEntry::SetId(uint32 id) {
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 contains_unknown_features_ = true; 520 contains_unknown_features_ = true;
521 break; 521 break;
522 } 522 }
523 } 523 }
524 feature_flags_.reset(new GpuFeatureFlags()); 524 feature_flags_.reset(new GpuFeatureFlags());
525 feature_flags_->set_flags(flags); 525 feature_flags_->set_flags(flags);
526 return true; 526 return true;
527 } 527 }
528 528
529 void GpuBlacklist::GpuBlacklistEntry::AddException( 529 void GpuBlacklist::GpuBlacklistEntry::AddException(
530 GpuBlacklistEntry* exception) { 530 ScopedGpuBlacklistEntry exception) {
531 exceptions_.push_back(exception); 531 exceptions_.push_back(exception);
532 } 532 }
533 533
534 bool GpuBlacklist::GpuBlacklistEntry::Contains( 534 bool GpuBlacklist::GpuBlacklistEntry::Contains(
535 OsType os_type, const Version& os_version, const GPUInfo& gpu_info) const { 535 OsType os_type, const Version& os_version, const GPUInfo& gpu_info) const {
536 DCHECK(os_type != kOsAny); 536 DCHECK(os_type != kOsAny);
537 if (os_info_.get() != NULL && !os_info_->Contains(os_type, os_version)) 537 if (os_info_.get() != NULL && !os_info_->Contains(os_type, os_version))
538 return false; 538 return false;
539 if (vendor_id_ != 0 && vendor_id_ != gpu_info.vendor_id) 539 if (vendor_id_ != 0 && vendor_id_ != gpu_info.vendor_id)
540 return false; 540 return false;
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after
966 browser_version_info.reset( 966 browser_version_info.reset(
967 new VersionInfo(version_op, version_string, version_string2)); 967 new VersionInfo(version_op, version_string, version_string2));
968 if (!browser_version_info->IsValid()) 968 if (!browser_version_info->IsValid())
969 return kMalformed; 969 return kMalformed;
970 if (browser_version_info->Contains(*browser_version_)) 970 if (browser_version_info->Contains(*browser_version_))
971 return kSupported; 971 return kSupported;
972 return kUnsupported; 972 return kUnsupported;
973 } 973 }
974 return kSupported; 974 return kSupported;
975 } 975 }
OLDNEW
« no previous file with comments | « content/browser/gpu/gpu_blacklist.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698