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

Side by Side Diff: Source/bindings/scripts/CodeGenerator.pm

Issue 14179013: Add support for [NoInterfaceObject] extended attribute to bindings generator (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Applied Kentaro's comments Created 7 years, 8 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
OLDNEW
1 # 1 #
2 # WebKit IDL parser 2 # WebKit IDL parser
3 # 3 #
4 # Copyright (C) 2005 Nikolas Zimmermann <wildfox@kde.org> 4 # Copyright (C) 2005 Nikolas Zimmermann <wildfox@kde.org>
5 # Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com> 5 # Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
6 # Copyright (C) 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. 6 # Copyright (C) 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
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 # 9 #
10 # This library is free software; you can redistribute it and/or 10 # This library is free software; you can redistribute it and/or
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 foreach my $function (@{$currentInterface->functions}) { 235 foreach my $function (@{$currentInterface->functions}) {
236 if ($function->signature->name eq $functionName) { 236 if ($function->signature->name eq $functionName) {
237 $indexer = $function->signature; 237 $indexer = $function->signature;
238 return 'prune'; 238 return 'prune';
239 } 239 }
240 } 240 }
241 }); 241 });
242 return $indexer; 242 return $indexer;
243 } 243 }
244 244
245 sub IDLFileForInterface 245 sub PopulateIDLFiles {
246 {
247 my $object = shift; 246 my $object = shift;
248 my $interfaceName = shift;
249 247
250 unless ($idlFiles) { 248 unless ($idlFiles) {
251 my $sourceRoot = $ENV{SOURCE_ROOT}; 249 my $sourceRoot = $ENV{SOURCE_ROOT};
252 my @directories = map { $_ = "$sourceRoot/$_" if $sourceRoot && -d "$sou rceRoot/$_"; $_ } @$useDirectories; 250 my @directories = map { $_ = "$sourceRoot/$_" if $sourceRoot && -d "$sou rceRoot/$_"; $_ } @$useDirectories;
253 push(@directories, "."); 251 push(@directories, ".");
254 252
255 $idlFiles = { }; 253 $idlFiles = { };
256 254
257 my $wanted = sub { 255 my $wanted = sub {
258 $idlFiles->{$1} = $File::Find::name if /^([A-Z].*)\.idl$/; 256 $idlFiles->{$1} = $File::Find::name if /^(?!Test)([A-Z].*)\.idl$/;
259 $File::Find::prune = 1 if /^\../; 257 $File::Find::prune = 1 if /^\../;
260 }; 258 };
261 find($wanted, @directories); 259 find($wanted, @directories);
262 } 260 }
261 }
262
263 sub GetAllInterfaces
264 {
265 my $object = shift;
266
267 $object->PopulateIDLFiles();
268
269 foreach my $filename (values $idlFiles) {
270 my $parser = IDLParser->new(1);
271 my $document = $parser->Parse($filename, $defines, $preprocessor);
272
273 foreach my $interface (@{$document->interfaces}) {
274 $cachedInterfaces->{$interface->name} = $interface;
275 }
276 }
277
278 return (values $cachedInterfaces);
279 }
280
281 sub IDLFileForInterface
282 {
283 my $object = shift;
284 my $interfaceName = shift;
285
286 $object->PopulateIDLFiles();
263 287
264 return $idlFiles->{$interfaceName}; 288 return $idlFiles->{$interfaceName};
265 } 289 }
266 290
267 sub ParseInterface 291 sub ParseInterface
268 { 292 {
269 my $object = shift; 293 my $object = shift;
270 my $interfaceName = shift; 294 my $interfaceName = shift;
271 295
272 return undef if $interfaceName eq 'Object'; 296 return undef if $interfaceName eq 'Object';
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after
762 if ($currentInterface->extendedAttributes->{$extendedAttribute}) { 786 if ($currentInterface->extendedAttributes->{$extendedAttribute}) {
763 $found = 1; 787 $found = 1;
764 } 788 }
765 return 1 if $found; 789 return 1 if $found;
766 }, 0); 790 }, 0);
767 791
768 return $found; 792 return $found;
769 } 793 }
770 794
771 1; 795 1;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698