Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright (C) 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org> | 1 # Copyright (C) 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org> |
| 2 # Copyright (C) 2006 Anders Carlsson <andersca@mac.com> | 2 # Copyright (C) 2006 Anders Carlsson <andersca@mac.com> |
| 3 # Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com> | 3 # Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com> |
| 4 # Copyright (C) 2006 Alexey Proskuryakov <ap@webkit.org> | 4 # Copyright (C) 2006 Alexey Proskuryakov <ap@webkit.org> |
| 5 # Copyright (C) 2006 Apple Computer, Inc. | 5 # Copyright (C) 2006 Apple Computer, Inc. |
| 6 # Copyright (C) 2007, 2008, 2009, 2012 Google Inc. | 6 # Copyright (C) 2007, 2008, 2009, 2012 Google Inc. |
| 7 # Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au> | 7 # Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au> |
| 8 # Copyright (C) Research In Motion Limited 2010. All rights reserved. | 8 # Copyright (C) Research In Motion Limited 2010. All rights reserved. |
| 9 # Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 9 # Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) |
| 10 # Copyright (C) 2012 Ericsson AB. All rights reserved. | 10 # Copyright (C) 2012 Ericsson AB. All rights reserved. |
| (...skipping 5422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5433 $code .= $nativeValue . "\n" if $nativeValue; # Skip blank line for void re turn type | 5433 $code .= $nativeValue . "\n" if $nativeValue; # Skip blank line for void re turn type |
| 5434 | 5434 |
| 5435 return $code; | 5435 return $code; |
| 5436 } | 5436 } |
| 5437 | 5437 |
| 5438 sub GetNativeType | 5438 sub GetNativeType |
| 5439 { | 5439 { |
| 5440 my $type = shift; | 5440 my $type = shift; |
| 5441 my $extendedAttributes = shift; | 5441 my $extendedAttributes = shift; |
| 5442 my $isParameter = shift; | 5442 my $isParameter = shift; |
| 5443 my $isMember = shift; | |
|
haraken
2014/02/27 15:32:43
The Perl generator is already gone, so you can rem
| |
| 5443 | 5444 |
| 5444 my $svgNativeType = GetSVGTypeNeedingTearOff($type); | 5445 my $svgNativeType = GetSVGTypeNeedingTearOff($type); |
| 5445 if ($svgNativeType) { | 5446 if ($svgNativeType) { |
| 5446 if ($svgNativeType =~ /List$/) { | 5447 if ($svgNativeType =~ /List$/) { |
| 5447 return "${svgNativeType}*"; | 5448 return "${svgNativeType}*"; |
| 5448 } else { | 5449 } else { |
| 5449 return "RefPtr<${svgNativeType} >"; | 5450 return "RefPtr<${svgNativeType} >"; |
| 5450 } | 5451 } |
| 5451 } | 5452 } |
| 5452 | 5453 |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 5483 } | 5484 } |
| 5484 | 5485 |
| 5485 # We need to check [ImplementedAs] extended attribute for wrapper types. | 5486 # We need to check [ImplementedAs] extended attribute for wrapper types. |
| 5486 return "RefPtrWillBeRawPtr<$type>" if $type eq "XPathNSResolver"; # FIXME: Remove custom bindings for XPathNSResolver. | 5487 return "RefPtrWillBeRawPtr<$type>" if $type eq "XPathNSResolver"; # FIXME: Remove custom bindings for XPathNSResolver. |
| 5487 if (IsWrapperType($type)) { | 5488 if (IsWrapperType($type)) { |
| 5488 my $interface = ParseInterface($type); | 5489 my $interface = ParseInterface($type); |
| 5489 my $implClassName = GetImplName($interface); | 5490 my $implClassName = GetImplName($interface); |
| 5490 if ($isParameter) { | 5491 if ($isParameter) { |
| 5491 return "$implClassName*"; | 5492 return "$implClassName*"; |
| 5492 } elsif (IsWillBeGarbageCollectedType($interface->name)) { | 5493 } elsif (IsWillBeGarbageCollectedType($interface->name)) { |
| 5493 return "RefPtrWillBeRawPtr<$implClassName>"; | 5494 if ($isMember) { |
| 5495 return "RefPtrWillBeMember<$implClassName>"; | |
| 5496 } else { | |
| 5497 return "RefPtrWillBeRawPtr<$implClassName>"; | |
| 5498 } | |
| 5494 } else { | 5499 } else { |
| 5495 return "RefPtr<$implClassName>"; | 5500 return "RefPtr<$implClassName>"; |
| 5496 } | 5501 } |
| 5497 } | 5502 } |
| 5498 return "RefPtr<$type>" if IsRefPtrType($type) and (not $isParameter or $nonW rapperTypes{$type}); | 5503 return "RefPtr<$type>" if IsRefPtrType($type) and (not $isParameter or $nonW rapperTypes{$type}); |
| 5499 | 5504 |
| 5500 my $arrayOrSequenceType = GetArrayOrSequenceType($type); | 5505 my $arrayOrSequenceType = GetArrayOrSequenceType($type); |
| 5501 | 5506 |
| 5502 if ($arrayOrSequenceType) { | 5507 if ($arrayOrSequenceType) { |
| 5503 my $nativeType = GetNativeType($arrayOrSequenceType); | 5508 if (IsWillBeGarbageCollectedType($arrayOrSequenceType)) { |
| 5504 $nativeType .= " " if ($nativeType =~ />$/); | 5509 my $nativeType = GetNativeType($arrayOrSequenceType, {}, "", "member "); |
| 5505 return "Vector<${nativeType}>"; | 5510 $nativeType .= " " if ($nativeType =~ />$/); |
| 5511 return "WillBeHeapVector<${nativeType}>"; | |
| 5512 } else { | |
| 5513 my $nativeType = GetNativeType($arrayOrSequenceType); | |
| 5514 $nativeType .= " " if ($nativeType =~ />$/); | |
| 5515 return "Vector<${nativeType}>"; | |
| 5516 } | |
| 5506 } | 5517 } |
| 5507 | 5518 |
| 5508 # Default, assume native type is a pointer with same type name as idl type | 5519 # Default, assume native type is a pointer with same type name as idl type |
| 5509 return "${type}*"; | 5520 return "${type}*"; |
| 5510 } | 5521 } |
| 5511 | 5522 |
| 5512 sub GetNativeTypeForCallbacks | 5523 sub GetNativeTypeForCallbacks |
| 5513 { | 5524 { |
| 5514 my $type = shift; | 5525 my $type = shift; |
| 5515 return "const String&" if $type eq "DOMString"; | 5526 return "const String&" if $type eq "DOMString"; |
| 5516 return "PassRefPtr<SerializedScriptValue>" if $type eq "SerializedScriptValu e"; | 5527 return "PassRefPtr<SerializedScriptValue>" if $type eq "SerializedScriptValu e"; |
| 5517 return "void" if $type eq "void"; | 5528 return "void" if $type eq "void"; |
| 5518 | 5529 |
| 5519 # Callbacks use raw pointers, so pass isParameter = 1 | 5530 # Callbacks use raw pointers, so pass isParameter = 1 |
| 5520 my $nativeType = GetNativeType($type, {}, "parameter"); | 5531 my $nativeType = GetNativeType($type, {}, "parameter"); |
| 5521 return "const $nativeType&" if $nativeType =~ /^Vector/; | 5532 return "const $nativeType&" if $nativeType =~ /^Vector/; |
| 5533 return "const $nativeType&" if $nativeType =~ /^WillBeHeapVector/; | |
| 5522 return $nativeType; | 5534 return $nativeType; |
| 5523 } | 5535 } |
| 5524 | 5536 |
| 5525 sub JSValueToNativeStatement | 5537 sub JSValueToNativeStatement |
| 5526 { | 5538 { |
| 5527 my $type = shift; | 5539 my $type = shift; |
| 5528 my $extendedAttributes = shift; | 5540 my $extendedAttributes = shift; |
| 5529 my $argIndexOrZero = shift; | 5541 my $argIndexOrZero = shift; |
| 5530 my $jsValue = shift; | 5542 my $jsValue = shift; |
| 5531 my $variableName = shift; | 5543 my $variableName = shift; |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5620 return "$value->Is${type}() ? V8${type}::toNative(v8::Handle<v8::${type} >::Cast($value)) : 0" | 5632 return "$value->Is${type}() ? V8${type}::toNative(v8::Handle<v8::${type} >::Cast($value)) : 0" |
| 5621 } | 5633 } |
| 5622 | 5634 |
| 5623 if ($type eq "XPathNSResolver") { | 5635 if ($type eq "XPathNSResolver") { |
| 5624 return "toXPathNSResolver($value, $getIsolate)"; | 5636 return "toXPathNSResolver($value, $getIsolate)"; |
| 5625 } | 5637 } |
| 5626 | 5638 |
| 5627 my $arrayOrSequenceType = GetArrayOrSequenceType($type); | 5639 my $arrayOrSequenceType = GetArrayOrSequenceType($type); |
| 5628 | 5640 |
| 5629 if ($arrayOrSequenceType) { | 5641 if ($arrayOrSequenceType) { |
| 5642 if (IsWillBeGarbageCollectedType($arrayOrSequenceType)) { | |
| 5643 AddToImplIncludes("V8${arrayOrSequenceType}.h"); | |
| 5644 return "(toMemberNativeArray<${arrayOrSequenceType}, V8${arrayOrSequ enceType}>($value, $argIndexOrZero, $getIsolate))"; | |
| 5645 } | |
| 5630 if (IsRefPtrType($arrayOrSequenceType)) { | 5646 if (IsRefPtrType($arrayOrSequenceType)) { |
| 5631 AddToImplIncludes("V8${arrayOrSequenceType}.h"); | 5647 AddToImplIncludes("V8${arrayOrSequenceType}.h"); |
| 5632 return "(toRefPtrNativeArray<${arrayOrSequenceType}, V8${arrayOrSequ enceType}>($value, $argIndexOrZero, $getIsolate))"; | 5648 return "(toRefPtrNativeArray<${arrayOrSequenceType}, V8${arrayOrSequ enceType}>($value, $argIndexOrZero, $getIsolate))"; |
| 5633 } | 5649 } |
| 5634 return "toNativeArray<" . GetNativeType($arrayOrSequenceType) . ">($valu e, $argIndexOrZero, $getIsolate)"; | 5650 return "toNativeArray<" . GetNativeType($arrayOrSequenceType) . ">($valu e, $argIndexOrZero, $getIsolate)"; |
| 5635 } | 5651 } |
| 5636 | 5652 |
| 5637 AddIncludesForType($type); | 5653 AddIncludesForType($type); |
| 5638 | 5654 |
| 5639 AddToImplIncludes("V8${type}.h"); | 5655 AddToImplIncludes("V8${type}.h"); |
| (...skipping 828 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6468 if ($parameter->type eq "SerializedScriptValue") { | 6484 if ($parameter->type eq "SerializedScriptValue") { |
| 6469 return 1; | 6485 return 1; |
| 6470 } elsif (IsIntegerType($parameter->type)) { | 6486 } elsif (IsIntegerType($parameter->type)) { |
| 6471 return 1; | 6487 return 1; |
| 6472 } | 6488 } |
| 6473 } | 6489 } |
| 6474 return 0; | 6490 return 0; |
| 6475 } | 6491 } |
| 6476 | 6492 |
| 6477 1; | 6493 1; |
| OLD | NEW |