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 5421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5432 $code .= $nativeValue . "\n" if $nativeValue; # Skip blank line for void re
turn type | 5432 $code .= $nativeValue . "\n" if $nativeValue; # Skip blank line for void re
turn type |
5433 | 5433 |
5434 return $code; | 5434 return $code; |
5435 } | 5435 } |
5436 | 5436 |
5437 sub GetNativeType | 5437 sub GetNativeType |
5438 { | 5438 { |
5439 my $type = shift; | 5439 my $type = shift; |
5440 my $extendedAttributes = shift; | 5440 my $extendedAttributes = shift; |
5441 my $isParameter = shift; | 5441 my $isParameter = shift; |
| 5442 my $isMember = shift; |
5442 | 5443 |
5443 my $svgNativeType = GetSVGTypeNeedingTearOff($type); | 5444 my $svgNativeType = GetSVGTypeNeedingTearOff($type); |
5444 if ($svgNativeType) { | 5445 if ($svgNativeType) { |
5445 if ($svgNativeType =~ /List$/) { | 5446 if ($svgNativeType =~ /List$/) { |
5446 return "${svgNativeType}*"; | 5447 return "${svgNativeType}*"; |
5447 } else { | 5448 } else { |
5448 return "RefPtr<${svgNativeType} >"; | 5449 return "RefPtr<${svgNativeType} >"; |
5449 } | 5450 } |
5450 } | 5451 } |
5451 | 5452 |
(...skipping 30 matching lines...) Expand all Loading... |
5482 } | 5483 } |
5483 | 5484 |
5484 # We need to check [ImplementedAs] extended attribute for wrapper types. | 5485 # We need to check [ImplementedAs] extended attribute for wrapper types. |
5485 return "RefPtr<$type>" if $type eq "XPathNSResolver"; # FIXME: can this be
put in nonWrapperTypes instead? | 5486 return "RefPtr<$type>" if $type eq "XPathNSResolver"; # FIXME: can this be
put in nonWrapperTypes instead? |
5486 if (IsWrapperType($type)) { | 5487 if (IsWrapperType($type)) { |
5487 my $interface = ParseInterface($type); | 5488 my $interface = ParseInterface($type); |
5488 my $implClassName = GetImplName($interface); | 5489 my $implClassName = GetImplName($interface); |
5489 if ($isParameter) { | 5490 if ($isParameter) { |
5490 return "$implClassName*"; | 5491 return "$implClassName*"; |
5491 } elsif (IsWillBeGarbageCollectedType($interface->name)) { | 5492 } elsif (IsWillBeGarbageCollectedType($interface->name)) { |
5492 return "RefPtrWillBeRawPtr<$implClassName>"; | 5493 if ($isMember) { |
| 5494 return "RefPtrWillBeMember<$implClassName>"; |
| 5495 } else { |
| 5496 return "RefPtrWillBeRawPtr<$implClassName>"; |
| 5497 } |
5493 } else { | 5498 } else { |
5494 return "RefPtr<$implClassName>"; | 5499 return "RefPtr<$implClassName>"; |
5495 } | 5500 } |
5496 } | 5501 } |
5497 return "RefPtr<$type>" if IsRefPtrType($type) and (not $isParameter or $nonW
rapperTypes{$type}); | 5502 return "RefPtr<$type>" if IsRefPtrType($type) and (not $isParameter or $nonW
rapperTypes{$type}); |
5498 | 5503 |
5499 my $arrayOrSequenceType = GetArrayOrSequenceType($type); | 5504 my $arrayOrSequenceType = GetArrayOrSequenceType($type); |
5500 | 5505 |
5501 if ($arrayOrSequenceType) { | 5506 if ($arrayOrSequenceType) { |
5502 my $nativeType = GetNativeType($arrayOrSequenceType); | 5507 if (IsWillBeGarbageCollectedType($arrayOrSequenceType)) { |
5503 $nativeType .= " " if ($nativeType =~ />$/); | 5508 my $nativeType = GetNativeType($arrayOrSequenceType, {}, "", "member
"); |
5504 return "Vector<${nativeType}>"; | 5509 $nativeType .= " " if ($nativeType =~ />$/); |
| 5510 return "WillBeHeapVector<${nativeType}>"; |
| 5511 } else { |
| 5512 my $nativeType = GetNativeType($arrayOrSequenceType); |
| 5513 $nativeType .= " " if ($nativeType =~ />$/); |
| 5514 return "Vector<${nativeType}>"; |
| 5515 } |
5505 } | 5516 } |
5506 | 5517 |
5507 # Default, assume native type is a pointer with same type name as idl type | 5518 # Default, assume native type is a pointer with same type name as idl type |
5508 return "${type}*"; | 5519 return "${type}*"; |
5509 } | 5520 } |
5510 | 5521 |
5511 sub GetNativeTypeForCallbacks | 5522 sub GetNativeTypeForCallbacks |
5512 { | 5523 { |
5513 my $type = shift; | 5524 my $type = shift; |
5514 return "const String&" if $type eq "DOMString"; | 5525 return "const String&" if $type eq "DOMString"; |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5619 return "$value->Is${type}() ? V8${type}::toNative(v8::Handle<v8::${type}
>::Cast($value)) : 0" | 5630 return "$value->Is${type}() ? V8${type}::toNative(v8::Handle<v8::${type}
>::Cast($value)) : 0" |
5620 } | 5631 } |
5621 | 5632 |
5622 if ($type eq "XPathNSResolver") { | 5633 if ($type eq "XPathNSResolver") { |
5623 return "toXPathNSResolver($value, $getIsolate)"; | 5634 return "toXPathNSResolver($value, $getIsolate)"; |
5624 } | 5635 } |
5625 | 5636 |
5626 my $arrayOrSequenceType = GetArrayOrSequenceType($type); | 5637 my $arrayOrSequenceType = GetArrayOrSequenceType($type); |
5627 | 5638 |
5628 if ($arrayOrSequenceType) { | 5639 if ($arrayOrSequenceType) { |
| 5640 if (IsWillBeGarbageCollectedType($arrayOrSequenceType)) { |
| 5641 AddToImplIncludes("V8${arrayOrSequenceType}.h"); |
| 5642 return "(toRefPtrWillBeMemberNativeArray<${arrayOrSequenceType}, V8$
{arrayOrSequenceType}>($value, $argIndexOrZero, $getIsolate))"; |
| 5643 } |
5629 if (IsRefPtrType($arrayOrSequenceType)) { | 5644 if (IsRefPtrType($arrayOrSequenceType)) { |
5630 AddToImplIncludes("V8${arrayOrSequenceType}.h"); | 5645 AddToImplIncludes("V8${arrayOrSequenceType}.h"); |
5631 return "(toRefPtrNativeArray<${arrayOrSequenceType}, V8${arrayOrSequ
enceType}>($value, $argIndexOrZero, $getIsolate))"; | 5646 return "(toRefPtrNativeArray<${arrayOrSequenceType}, V8${arrayOrSequ
enceType}>($value, $argIndexOrZero, $getIsolate))"; |
5632 } | 5647 } |
5633 return "toNativeArray<" . GetNativeType($arrayOrSequenceType) . ">($valu
e, $argIndexOrZero, $getIsolate)"; | 5648 return "toNativeArray<" . GetNativeType($arrayOrSequenceType) . ">($valu
e, $argIndexOrZero, $getIsolate)"; |
5634 } | 5649 } |
5635 | 5650 |
5636 AddIncludesForType($type); | 5651 AddIncludesForType($type); |
5637 | 5652 |
5638 AddToImplIncludes("V8${type}.h"); | 5653 AddToImplIncludes("V8${type}.h"); |
(...skipping 840 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6479 if ($parameter->type eq "SerializedScriptValue") { | 6494 if ($parameter->type eq "SerializedScriptValue") { |
6480 return 1; | 6495 return 1; |
6481 } elsif (IsIntegerType($parameter->type)) { | 6496 } elsif (IsIntegerType($parameter->type)) { |
6482 return 1; | 6497 return 1; |
6483 } | 6498 } |
6484 } | 6499 } |
6485 return 0; | 6500 return 0; |
6486 } | 6501 } |
6487 | 6502 |
6488 1; | 6503 1; |
OLD | NEW |