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

Issue 8540021: Create a nicer interface for base::mac::GetValueFromDictionary (Closed)

Created:
9 years, 1 month ago by KushalP
Modified:
9 years, 1 month ago
Reviewers:
Mark Mentovai, Nico
CC:
chromium-reviews, Paweł Hajdan Jr., brettw-cc_chromium.org
Visibility:
Public.

Description

Create a nicer interface for base::mac::GetValueFromDictionary The interface now conforms to base::mac::GetValueFromDictionary<>(dictionary, key). The tests written have loosely compared it against the original base::mac::GetValueFromDictionary method for expectations. TEST=FoundationUtilTest.GetValueFromDictionary Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=109985

Patch Set 1 #

Total comments: 10

Patch Set 2 : move header definition to be in similar place as body def #

Total comments: 2

Patch Set 3 : Templated method. Bubble out error message F(). 'typename T'. #

Patch Set 4 : Use ScopedCFTypeRef for expected_type_ref #

Patch Set 5 : COMPILE_ASSERT the arraysizes #

Total comments: 12

Patch Set 6 : Remove extra header defn. Alignment. Styleguide. #

Patch Set 7 : Add a TypeNameForCFType function #

Total comments: 4

Patch Set 8 : accept std::string; alignment #

Total comments: 21

Patch Set 9 : undefs, alignment, ScopedCFTypeRefs #

Total comments: 3

Patch Set 10 : TODO comment and add further undefs #

Total comments: 3

Patch Set 11 : Use reinterpret_cast and update TODO comment #

Unified diffs Side-by-side diffs Delta from patch set Stats (+134 lines, -15 lines) Patch
M base/mac/foundation_util.h View 1 2 3 4 5 6 7 8 9 10 7 chunks +50 lines, -4 lines 0 comments Download
M base/mac/foundation_util.mm View 1 2 3 4 5 6 7 8 5 chunks +40 lines, -11 lines 0 comments Download
M base/mac/foundation_util_unittest.mm View 1 2 3 4 5 6 7 8 9 10 2 chunks +44 lines, -0 lines 0 comments Download

Messages

Total messages: 35 (0 generated)
KushalP
Something I'm not too sure about and would appreciate clarification on is the level of ...
9 years, 1 month ago (2011-11-11 22:57:33 UTC) #1
KushalP
I'm also now wondering whether it would be worthwhile to have a "Strict" variant which ...
9 years, 1 month ago (2011-11-11 23:05:37 UTC) #2
Nico
http://codereview.chromium.org/8540021/diff/5/base/mac/foundation_util.h File base/mac/foundation_util.h (right): http://codereview.chromium.org/8540021/diff/5/base/mac/foundation_util.h#newcode108 base/mac/foundation_util.h:108: T GetValueFromDictionary(CFDictionaryRef dict, CFStringRef key); I don't understand why ...
9 years, 1 month ago (2011-11-11 23:08:36 UTC) #3
KushalP
http://codereview.chromium.org/8540021/diff/5/base/mac/foundation_util.h File base/mac/foundation_util.h (right): http://codereview.chromium.org/8540021/diff/5/base/mac/foundation_util.h#newcode108 base/mac/foundation_util.h:108: T GetValueFromDictionary(CFDictionaryRef dict, CFStringRef key); On 2011/11/11 23:08:36, Nico ...
9 years, 1 month ago (2011-11-11 23:13:35 UTC) #4
Nico
> You can do something similar to your example with: > > base::mac::GetValueFromDictionary<CFStringRef>(); > base::mac::GetValueFromDictionary<CFNumberRef>(); ...
9 years, 1 month ago (2011-11-11 23:19:04 UTC) #5
Mark Mentovai
Here are the options. This change should be accompanied by one that transitions existing callers. ...
9 years, 1 month ago (2011-11-11 23:20:45 UTC) #6
Mark Mentovai
Nico wrote: > Yeah, but with the template approach, GetValueFromDictionary<Browser>() will > compile fine, just ...
9 years, 1 month ago (2011-11-11 23:25:34 UTC) #7
KushalP
On 2011/11/11 23:25:34, Mark Mentovai wrote: > > I do think the template makes more ...
9 years, 1 month ago (2011-11-12 01:24:38 UTC) #8
KushalP
Patch Set 3 takes into account most of @mark's recommendations. The only thing left to ...
9 years, 1 month ago (2011-11-12 01:38:30 UTC) #9
Mark Mentovai
http://codereview.chromium.org/8540021/diff/8001/base/mac/foundation_util.h File base/mac/foundation_util.h (right): http://codereview.chromium.org/8540021/diff/8001/base/mac/foundation_util.h#newcode104 base/mac/foundation_util.h:104: CFStringRef expected_type_ref, Bad alignment on the indent. http://codereview.chromium.org/8540021/diff/8001/base/mac/foundation_util.h#newcode115 base/mac/foundation_util.h:115: ...
9 years, 1 month ago (2011-11-13 01:28:21 UTC) #10
KushalP
Most nits covered in Patch Set 6. http://codereview.chromium.org/8540021/diff/8001/base/mac/foundation_util.h File base/mac/foundation_util.h (right): http://codereview.chromium.org/8540021/diff/8001/base/mac/foundation_util.h#newcode116 base/mac/foundation_util.h:116: T GetValueFromDictionary(CFDictionaryRef ...
9 years, 1 month ago (2011-11-13 12:30:27 UTC) #11
Mark Mentovai
http://codereview.chromium.org/8540021/diff/8001/base/mac/foundation_util.h File base/mac/foundation_util.h (right): http://codereview.chromium.org/8540021/diff/8001/base/mac/foundation_util.h#newcode294 base/mac/foundation_util.h:294: // TODO: Get the string value of the type ...
9 years, 1 month ago (2011-11-14 14:12:05 UTC) #12
KushalP
On 2011/11/14 14:12:05, Mark Mentovai wrote: > You want a function that can be called ...
9 years, 1 month ago (2011-11-14 15:03:29 UTC) #13
Mark Mentovai
You can't do it without writing the function body (perhaps by macro) for each type ...
9 years, 1 month ago (2011-11-14 15:12:53 UTC) #14
KushalP
This now seems to work as expected and is ready for another review. Thanks for ...
9 years, 1 month ago (2011-11-14 18:03:24 UTC) #15
Mark Mentovai
http://codereview.chromium.org/8540021/diff/15002/base/mac/foundation_util.h File base/mac/foundation_util.h (right): http://codereview.chromium.org/8540021/diff/15002/base/mac/foundation_util.h#newcode300 base/mac/foundation_util.h:300: ScopedCFTypeRef<CFStringRef> expected_type_ref(CFStringCreateWithCString( Why are you turning this into a ...
9 years, 1 month ago (2011-11-14 18:08:55 UTC) #16
KushalP
http://codereview.chromium.org/8540021/diff/15002/base/mac/foundation_util.mm File base/mac/foundation_util.mm (right): http://codereview.chromium.org/8540021/diff/15002/base/mac/foundation_util.mm#newcode205 base/mac/foundation_util.mm:205: return type_name + "Ref"; \ On 2011/11/14 18:08:55, Mark ...
9 years, 1 month ago (2011-11-14 18:47:02 UTC) #17
Mark Mentovai
http://codereview.chromium.org/8540021/diff/14003/base/mac/foundation_util.h File base/mac/foundation_util.h (right): http://codereview.chromium.org/8540021/diff/14003/base/mac/foundation_util.h#newcode117 base/mac/foundation_util.h:117: std::string expected_type_ref, This can accept a const&, can’t it?
9 years, 1 month ago (2011-11-14 18:59:28 UTC) #18
Mark Mentovai
http://codereview.chromium.org/8540021/diff/14003/base/mac/foundation_util.h File base/mac/foundation_util.h (right): http://codereview.chromium.org/8540021/diff/14003/base/mac/foundation_util.h#newcode101 base/mac/foundation_util.h:101: std::string TypeNameForCFType(TypeCF##Ref cfo); The argument is unused and thus ...
9 years, 1 month ago (2011-11-14 19:29:14 UTC) #19
KushalP
http://codereview.chromium.org/8540021/diff/14003/base/mac/foundation_util.h File base/mac/foundation_util.h (right): http://codereview.chromium.org/8540021/diff/14003/base/mac/foundation_util.h#newcode122 base/mac/foundation_util.h:122: BASE_EXPORT CFTypeRef GetValueFromDictionary(CFDictionaryRef dict, On 2011/11/14 19:29:14, Mark Mentovai ...
9 years, 1 month ago (2011-11-14 20:37:13 UTC) #20
Mark Mentovai
http://codereview.chromium.org/8540021/diff/14003/base/mac/foundation_util.h File base/mac/foundation_util.h (right): http://codereview.chromium.org/8540021/diff/14003/base/mac/foundation_util.h#newcode122 base/mac/foundation_util.h:122: BASE_EXPORT CFTypeRef GetValueFromDictionary(CFDictionaryRef dict, KushalP wrote: > How do ...
9 years, 1 month ago (2011-11-14 20:49:21 UTC) #21
Mark Mentovai
http://codereview.chromium.org/8540021/diff/14003/base/mac/foundation_util_unittest.mm File base/mac/foundation_util_unittest.mm (right): http://codereview.chromium.org/8540021/diff/14003/base/mac/foundation_util_unittest.mm#newcode286 base/mac/foundation_util_unittest.mm:286: CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &one), KushalP wrote: > On 2011/11/14 19:29:14, ...
9 years, 1 month ago (2011-11-14 20:50:19 UTC) #22
KushalP
http://codereview.chromium.org/8540021/diff/14003/base/mac/foundation_util.h File base/mac/foundation_util.h (right): http://codereview.chromium.org/8540021/diff/14003/base/mac/foundation_util.h#newcode122 base/mac/foundation_util.h:122: BASE_EXPORT CFTypeRef GetValueFromDictionary(CFDictionaryRef dict, On 2011/11/14 20:49:22, Mark Mentovai ...
9 years, 1 month ago (2011-11-14 21:04:12 UTC) #23
Mark Mentovai
http://codereview.chromium.org/8540021/diff/14003/base/mac/foundation_util.h File base/mac/foundation_util.h (right): http://codereview.chromium.org/8540021/diff/14003/base/mac/foundation_util.h#newcode122 base/mac/foundation_util.h:122: BASE_EXPORT CFTypeRef GetValueFromDictionary(CFDictionaryRef dict, KushalP wrote: > On 2011/11/14 ...
9 years, 1 month ago (2011-11-14 21:09:01 UTC) #24
KushalP
http://codereview.chromium.org/8540021/diff/14003/base/mac/foundation_util_unittest.mm File base/mac/foundation_util_unittest.mm (right): http://codereview.chromium.org/8540021/diff/14003/base/mac/foundation_util_unittest.mm#newcode286 base/mac/foundation_util_unittest.mm:286: CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &one), On 2011/11/14 21:09:01, Mark Mentovai wrote: ...
9 years, 1 month ago (2011-11-14 21:14:39 UTC) #25
KushalP
The most recent change covers your previous comments. Only thing I'm unsure about is which ...
9 years, 1 month ago (2011-11-14 21:46:10 UTC) #26
Mark Mentovai
Otherwise this is now fine. http://codereview.chromium.org/8540021/diff/14008/base/mac/foundation_util.h File base/mac/foundation_util.h (right): http://codereview.chromium.org/8540021/diff/14008/base/mac/foundation_util.h#newcode123 base/mac/foundation_util.h:123: // This is now ...
9 years, 1 month ago (2011-11-14 21:57:18 UTC) #27
KushalP
Updated again with new nits covered. I've posted the bug here: crbug.com/104200
9 years, 1 month ago (2011-11-14 22:07:45 UTC) #28
Mark Mentovai
http://codereview.chromium.org/8540021/diff/14008/base/mac/foundation_util_unittest.mm File base/mac/foundation_util_unittest.mm (right): http://codereview.chromium.org/8540021/diff/14008/base/mac/foundation_util_unittest.mm#newcode298 base/mac/foundation_util_unittest.mm:298: (const void**)keys, Can’t these both be C++-style casts? reinterpret_cast<const ...
9 years, 1 month ago (2011-11-14 22:09:42 UTC) #29
Mark Mentovai
http://codereview.chromium.org/8540021/diff/14009/base/mac/foundation_util.h File base/mac/foundation_util.h (right): http://codereview.chromium.org/8540021/diff/14009/base/mac/foundation_util.h#newcode124 base/mac/foundation_util.h:124: // TODO(kushi.p) Please finish this comment by referencing your ...
9 years, 1 month ago (2011-11-14 22:11:37 UTC) #30
Mark Mentovai
http://codereview.chromium.org/8540021/diff/14009/base/mac/foundation_util.h File base/mac/foundation_util.h (right): http://codereview.chromium.org/8540021/diff/14009/base/mac/foundation_util.h#newcode226 base/mac/foundation_util.h:226: #undef CF_TO_NS_MUTABLE_CAST_DECL I said three, right? How about OBJC_CPP_CLASS_DECL?
9 years, 1 month ago (2011-11-14 22:13:21 UTC) #31
KushalP
Updated again. http://codereview.chromium.org/8540021/diff/14009/base/mac/foundation_util.h File base/mac/foundation_util.h (right): http://codereview.chromium.org/8540021/diff/14009/base/mac/foundation_util.h#newcode226 base/mac/foundation_util.h:226: #undef CF_TO_NS_MUTABLE_CAST_DECL On 2011/11/14 22:13:21, Mark Mentovai ...
9 years, 1 month ago (2011-11-14 22:20:46 UTC) #32
Mark Mentovai
This is now LGTM. I’m hitting the CQ button.
9 years, 1 month ago (2011-11-14 22:28:08 UTC) #33
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/kushi.p@gmail.com/8540021/17008
9 years, 1 month ago (2011-11-14 22:28:24 UTC) #34
commit-bot: I haz the power
9 years, 1 month ago (2011-11-15 00:03:55 UTC) #35
Change committed as 109985

Powered by Google App Engine
This is Rietveld 408576698