Changeset 212157 in webkit


Ignore:
Timestamp:
Feb 10, 2017 3:47:02 PM (7 years ago)
Author:
BJ Burg
Message:

[Cocoa] Web Inspector: payload initializers for ObjC protocol types handles special-cased property names incorrectly
https://bugs.webkit.org/show_bug.cgi?id=168141

Reviewed by Joseph Pecoraro.

The generated code erroneously uses the ObjC variable name as the payload key,
rather than the raw type member name. For example, 'identifier' would be used instead of 'id'.

  • inspector/scripts/codegen/generate_objc_protocol_types_implementation.py:

(ObjCProtocolTypesImplementationGenerator._generate_init_method_for_payload):

  • inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result:

Rebaseline an affected test.

Location:
trunk/Source/JavaScriptCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r212146 r212157  
     12017-02-10  Brian Burg  <bburg@apple.com>
     2
     3        [Cocoa] Web Inspector: payload initializers for ObjC protocol types handles special-cased property names incorrectly
     4        https://bugs.webkit.org/show_bug.cgi?id=168141
     5
     6        Reviewed by Joseph Pecoraro.
     7
     8        The generated code erroneously uses the ObjC variable name as the payload key,
     9        rather than the raw type member name. For example, 'identifier' would be used instead of 'id'.
     10
     11        * inspector/scripts/codegen/generate_objc_protocol_types_implementation.py:
     12        (ObjCProtocolTypesImplementationGenerator._generate_init_method_for_payload):
     13
     14        * inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result:
     15        Rebaseline an affected test.
     16
    1172017-02-10  Mark Lam  <mark.lam@apple.com>
    218
  • trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py

    r210309 r212157  
    129129
    130130        for member in declaration.type_members:
    131             var_name = ObjCGenerator.identifier_to_objc_identifier(member.member_name)
     131            member_name = member.member_name
     132            conversion_expression = self.payload_to_objc_expression_for_member(declaration, member)
     133
    132134            if not member.is_optional:
    133                 lines.append('    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"%s"], @"%s");' % (var_name, var_name))
    134             conversion_expression = self.payload_to_objc_expression_for_member(declaration, member)
     135                lines.append('    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"%s"], @"%s");' % (member_name, member_name))
     136
     137            var_name = ObjCGenerator.identifier_to_objc_identifier(member_name)
    135138            lines.append('    self.%s = %s;' % (var_name, conversion_expression))
    136139            lines.append('')
  • trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result

    r212116 r212157  
    14641464    self.animals = fromProtocolString<TestProtocolTestCastedAnimals>(payload[@"animals"]);
    14651465
    1466     THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"identifier"], @"identifier");
     1466    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"id"], @"id");
    14671467    self.identifier = [payload[@"id"] integerValue];
    14681468
Note: See TracChangeset for help on using the changeset viewer.