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

Side by Side Diff: gpu/command_buffer/build_gles2_cmd_buffer.py

Issue 795243002: Add TransformFeedback related APIs to command buffer: PART I. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years 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 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """code generator for GLES2 command buffers.""" 6 """code generator for GLES2 command buffers."""
7 7
8 import itertools 8 import itertools
9 import os 9 import os
10 import os.path 10 import os.path
(...skipping 692 matching lines...) Expand 10 before | Expand all | Expand 10 after
703 'type': 'GLenum', 703 'type': 'GLenum',
704 'valid': [ 704 'valid': [
705 'GL_TEXTURE_2D', 705 'GL_TEXTURE_2D',
706 'GL_TEXTURE_CUBE_MAP', 706 'GL_TEXTURE_CUBE_MAP',
707 ], 707 ],
708 'invalid': [ 708 'invalid': [
709 'GL_TEXTURE_1D', 709 'GL_TEXTURE_1D',
710 'GL_TEXTURE_3D', 710 'GL_TEXTURE_3D',
711 ], 711 ],
712 }, 712 },
713 'TransformFeedbackBindTarget': {
714 'type': 'GLenum',
715 'valid': [
716 'GL_TRANSFORM_FEEDBACK',
717 ],
718 'invalid': [
719 'GL_TEXTURE_2D',
720 ],
721 },
722 'TransformFeedbackPrimitiveMode': {
723 'type': 'GLenum',
724 'valid': [
725 'GL_POINTS',
726 'GL_LINES',
727 'GL_TRIANGLES',
728 ],
729 'invalid': [
730 'GL_LINE_LOOP',
731 ],
732 },
713 'ShaderType': { 733 'ShaderType': {
714 'type': 'GLenum', 734 'type': 'GLenum',
715 'valid': [ 735 'valid': [
716 'GL_VERTEX_SHADER', 736 'GL_VERTEX_SHADER',
717 'GL_FRAGMENT_SHADER', 737 'GL_FRAGMENT_SHADER',
718 ], 738 ],
719 'invalid': [ 739 'invalid': [
720 'GL_GEOMETRY_SHADER', 740 'GL_GEOMETRY_SHADER',
721 ], 741 ],
722 }, 742 },
(...skipping 620 matching lines...) Expand 10 before | Expand all | Expand 10 after
1343 # taking cmd_args override into consideration. 1363 # taking cmd_args override into consideration.
1344 # impl_func: Whether or not to generate the GLES2Implementation part of this 1364 # impl_func: Whether or not to generate the GLES2Implementation part of this
1345 # command. 1365 # command.
1346 # impl_decl: Whether or not to generate the GLES2Implementation declaration 1366 # impl_decl: Whether or not to generate the GLES2Implementation declaration
1347 # for this command. 1367 # for this command.
1348 # needs_size: If True a data_size field is added to the command. 1368 # needs_size: If True a data_size field is added to the command.
1349 # count: The number of units per element. For PUTn or PUT types. 1369 # count: The number of units per element. For PUTn or PUT types.
1350 # unit_test: If False no service side unit test will be generated. 1370 # unit_test: If False no service side unit test will be generated.
1351 # client_test: If False no client side unit test will be generated. 1371 # client_test: If False no client side unit test will be generated.
1352 # expectation: If False the unit test will have no expected calls. 1372 # expectation: If False the unit test will have no expected calls.
1353 # match_all: If True the unit test's EXPECT_GL will use _ for any args.
1354 # gen_func: Name of function that generates GL resource for corresponding 1373 # gen_func: Name of function that generates GL resource for corresponding
1355 # bind function. 1374 # bind function.
1356 # states: array of states that get set by this function corresponding to 1375 # states: array of states that get set by this function corresponding to
1357 # the given arguments 1376 # the given arguments
1358 # state_flag: name of flag that is set to true when function is called. 1377 # state_flag: name of flag that is set to true when function is called.
1359 # no_gl: no GL function is called. 1378 # no_gl: no GL function is called.
1360 # valid_args: A dictionary of argument indices to args to use in unit tests 1379 # valid_args: A dictionary of argument indices to args to use in unit tests
1361 # when they can not be automatically determined. 1380 # when they can not be automatically determined.
1362 # pepper_interface: The pepper interface that is used for this extension 1381 # pepper_interface: The pepper interface that is used for this extension
1363 # pepper_name: The name of the function as exposed to pepper. 1382 # pepper_name: The name of the function as exposed to pepper.
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1418 'unsafe': True, 1437 'unsafe': True,
1419 }, 1438 },
1420 'BindTexture': { 1439 'BindTexture': {
1421 'type': 'Bind', 1440 'type': 'Bind',
1422 'decoder_func': 'DoBindTexture', 1441 'decoder_func': 'DoBindTexture',
1423 'gen_func': 'GenTextures', 1442 'gen_func': 'GenTextures',
1424 # TODO(gman): remove this once client side caching works. 1443 # TODO(gman): remove this once client side caching works.
1425 'client_test': False, 1444 'client_test': False,
1426 'trace_level': 1, 1445 'trace_level': 1,
1427 }, 1446 },
1447 'BindTransformFeedback': {
1448 'type': 'Bind',
1449 'id_mapping': [ 'TransformFeedback' ],
1450 'unsafe': True,
1451 },
1428 'BlitFramebufferCHROMIUM': { 1452 'BlitFramebufferCHROMIUM': {
1429 'decoder_func': 'DoBlitFramebufferCHROMIUM', 1453 'decoder_func': 'DoBlitFramebufferCHROMIUM',
1430 'unit_test': False, 1454 'unit_test': False,
1431 'extension_flag': 'chromium_framebuffer_multisample', 1455 'extension_flag': 'chromium_framebuffer_multisample',
1432 'pepper_interface': 'FramebufferBlit', 1456 'pepper_interface': 'FramebufferBlit',
1433 'pepper_name': 'BlitFramebufferEXT', 1457 'pepper_name': 'BlitFramebufferEXT',
1434 'defer_reads': True, 1458 'defer_reads': True,
1435 'defer_draws': True, 1459 'defer_draws': True,
1436 'trace_level': 1, 1460 'trace_level': 1,
1437 }, 1461 },
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
1721 'resource_type': 'Sampler', 1745 'resource_type': 'Sampler',
1722 'resource_types': 'Samplers', 1746 'resource_types': 'Samplers',
1723 'unsafe': True, 1747 'unsafe': True,
1724 }, 1748 },
1725 'DeleteShader': {'type': 'Delete', 'decoder_func': 'DoDeleteShader'}, 1749 'DeleteShader': {'type': 'Delete', 'decoder_func': 'DoDeleteShader'},
1726 'DeleteTextures': { 1750 'DeleteTextures': {
1727 'type': 'DELn', 1751 'type': 'DELn',
1728 'resource_type': 'Texture', 1752 'resource_type': 'Texture',
1729 'resource_types': 'Textures', 1753 'resource_types': 'Textures',
1730 }, 1754 },
1755 'DeleteTransformFeedbacks': {
1756 'type': 'DELn',
1757 'resource_type': 'TransformFeedback',
1758 'resource_types': 'TransformFeedbacks',
1759 'unsafe': True,
1760 },
1731 'DepthRangef': { 1761 'DepthRangef': {
1732 'decoder_func': 'DoDepthRangef', 1762 'decoder_func': 'DoDepthRangef',
1733 'gl_test_func': 'glDepthRange', 1763 'gl_test_func': 'glDepthRange',
1734 }, 1764 },
1735 'DepthMask': { 1765 'DepthMask': {
1736 'type': 'StateSet', 1766 'type': 'StateSet',
1737 'state': 'DepthMask', 1767 'state': 'DepthMask',
1738 'no_gl': True, 1768 'no_gl': True,
1739 'expectation': False, 1769 'expectation': False,
1740 }, 1770 },
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
1835 'resource_type': 'Sampler', 1865 'resource_type': 'Sampler',
1836 'resource_types': 'Samplers', 1866 'resource_types': 'Samplers',
1837 'unsafe': True, 1867 'unsafe': True,
1838 }, 1868 },
1839 'GenTextures': { 1869 'GenTextures': {
1840 'type': 'GENn', 1870 'type': 'GENn',
1841 'gl_test_func': 'glGenTextures', 1871 'gl_test_func': 'glGenTextures',
1842 'resource_type': 'Texture', 1872 'resource_type': 'Texture',
1843 'resource_types': 'Textures', 1873 'resource_types': 'Textures',
1844 }, 1874 },
1875 'GenTransformFeedbacks': {
1876 'type': 'GENn',
1877 'gl_test_func': 'glGenTransformFeedbacks',
1878 'resource_type': 'TransformFeedback',
1879 'resource_types': 'TransformFeedbacks',
1880 'unsafe': True,
1881 },
1845 'GetActiveAttrib': { 1882 'GetActiveAttrib': {
1846 'type': 'Custom', 1883 'type': 'Custom',
1847 'data_transfer_methods': ['shm'], 1884 'data_transfer_methods': ['shm'],
1848 'cmd_args': 1885 'cmd_args':
1849 'GLidProgram program, GLuint index, uint32_t name_bucket_id, ' 1886 'GLidProgram program, GLuint index, uint32_t name_bucket_id, '
1850 'void* result', 1887 'void* result',
1851 'result': [ 1888 'result': [
1852 'int32_t success', 1889 'int32_t success',
1853 'int32_t size', 1890 'int32_t size',
1854 'uint32_t type', 1891 'uint32_t type',
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
2108 'decoder_func': 'DoIsRenderbuffer', 2145 'decoder_func': 'DoIsRenderbuffer',
2109 'expectation': False, 2146 'expectation': False,
2110 }, 2147 },
2111 'IsShader': { 2148 'IsShader': {
2112 'type': 'Is', 2149 'type': 'Is',
2113 'decoder_func': 'DoIsShader', 2150 'decoder_func': 'DoIsShader',
2114 'expectation': False, 2151 'expectation': False,
2115 }, 2152 },
2116 'IsSampler': { 2153 'IsSampler': {
2117 'type': 'Is', 2154 'type': 'Is',
2118 'match_all': True, 2155 'id_mapping': [ 'Sampler' ],
2119 'unsafe': True, 2156 'unsafe': True,
2120 }, 2157 },
2121 'IsTexture': { 2158 'IsTexture': {
2122 'type': 'Is', 2159 'type': 'Is',
2123 'decoder_func': 'DoIsTexture', 2160 'decoder_func': 'DoIsTexture',
2124 'expectation': False, 2161 'expectation': False,
2125 }, 2162 },
2163 'IsTransformFeedback': {
2164 'type': 'Is',
2165 'id_mapping': [ 'TransformFeedback' ],
2166 'unsafe': True,
2167 },
2126 'LinkProgram': { 2168 'LinkProgram': {
2127 'decoder_func': 'DoLinkProgram', 2169 'decoder_func': 'DoLinkProgram',
2128 'impl_func': False, 2170 'impl_func': False,
2129 }, 2171 },
2130 'MapBufferCHROMIUM': { 2172 'MapBufferCHROMIUM': {
2131 'gen_cmd': False, 2173 'gen_cmd': False,
2132 'extension': True, 2174 'extension': True,
2133 'chromium': True, 2175 'chromium': True,
2134 'client_test': False, 2176 'client_test': False,
2135 }, 2177 },
2136 'MapBufferSubDataCHROMIUM': { 2178 'MapBufferSubDataCHROMIUM': {
2137 'gen_cmd': False, 2179 'gen_cmd': False,
2138 'extension': True, 2180 'extension': True,
2139 'chromium': True, 2181 'chromium': True,
2140 'client_test': False, 2182 'client_test': False,
2141 'pepper_interface': 'ChromiumMapSub', 2183 'pepper_interface': 'ChromiumMapSub',
2142 }, 2184 },
2143 'MapTexSubImage2DCHROMIUM': { 2185 'MapTexSubImage2DCHROMIUM': {
2144 'gen_cmd': False, 2186 'gen_cmd': False,
2145 'extension': True, 2187 'extension': True,
2146 'chromium': True, 2188 'chromium': True,
2147 'client_test': False, 2189 'client_test': False,
2148 'pepper_interface': 'ChromiumMapSub', 2190 'pepper_interface': 'ChromiumMapSub',
2149 }, 2191 },
2192 'PauseTransformFeedback': {
2193 'unsafe': True,
2194 },
2150 'PixelStorei': {'type': 'Manual'}, 2195 'PixelStorei': {'type': 'Manual'},
2151 'PostSubBufferCHROMIUM': { 2196 'PostSubBufferCHROMIUM': {
2152 'type': 'Custom', 2197 'type': 'Custom',
2153 'impl_func': False, 2198 'impl_func': False,
2154 'unit_test': False, 2199 'unit_test': False,
2155 'client_test': False, 2200 'client_test': False,
2156 'extension': True, 2201 'extension': True,
2157 'chromium': True, 2202 'chromium': True,
2158 }, 2203 },
2159 'ProduceTextureCHROMIUM': { 2204 'ProduceTextureCHROMIUM': {
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
2221 'uint32_t pixels_shm_id, uint32_t pixels_shm_offset, ' 2266 'uint32_t pixels_shm_id, uint32_t pixels_shm_offset, '
2222 'uint32_t result_shm_id, uint32_t result_shm_offset, ' 2267 'uint32_t result_shm_id, uint32_t result_shm_offset, '
2223 'GLboolean async', 2268 'GLboolean async',
2224 'result': ['uint32_t'], 2269 'result': ['uint32_t'],
2225 'defer_reads': True, 2270 'defer_reads': True,
2226 }, 2271 },
2227 'ReleaseShaderCompiler': { 2272 'ReleaseShaderCompiler': {
2228 'decoder_func': 'DoReleaseShaderCompiler', 2273 'decoder_func': 'DoReleaseShaderCompiler',
2229 'unit_test': False, 2274 'unit_test': False,
2230 }, 2275 },
2276 'ResumeTransformFeedback': {
2277 'unsafe': True,
2278 },
2231 'SamplerParameterf': { 2279 'SamplerParameterf': {
2232 'valid_args': { 2280 'valid_args': {
2233 '2': 'GL_NEAREST' 2281 '2': 'GL_NEAREST'
2234 }, 2282 },
2235 'id_mapping': [ 'Sampler' ], 2283 'id_mapping': [ 'Sampler' ],
2236 'unsafe': True, 2284 'unsafe': True,
2237 }, 2285 },
2238 'SamplerParameterfv': { 2286 'SamplerParameterfv': {
2239 'type': 'PUT', 2287 'type': 'PUT',
2240 'data_value': 'GL_NEAREST', 2288 'data_value': 'GL_NEAREST',
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after
2681 'client_test': False, 2729 'client_test': False,
2682 'pepper_interface': 'Query', 2730 'pepper_interface': 'Query',
2683 }, 2731 },
2684 'BeginQueryEXT': { 2732 'BeginQueryEXT': {
2685 'type': 'Manual', 2733 'type': 'Manual',
2686 'cmd_args': 'GLenumQueryTarget target, GLidQuery id, void* sync_data', 2734 'cmd_args': 'GLenumQueryTarget target, GLidQuery id, void* sync_data',
2687 'data_transfer_methods': ['shm'], 2735 'data_transfer_methods': ['shm'],
2688 'gl_test_func': 'glBeginQuery', 2736 'gl_test_func': 'glBeginQuery',
2689 'pepper_interface': 'Query', 2737 'pepper_interface': 'Query',
2690 }, 2738 },
2739 'BeginTransformFeedback': {
2740 'unsafe': True,
2741 },
2691 'EndQueryEXT': { 2742 'EndQueryEXT': {
2692 'type': 'Manual', 2743 'type': 'Manual',
2693 'cmd_args': 'GLenumQueryTarget target, GLuint submit_count', 2744 'cmd_args': 'GLenumQueryTarget target, GLuint submit_count',
2694 'gl_test_func': 'glEndnQuery', 2745 'gl_test_func': 'glEndnQuery',
2695 'client_test': False, 2746 'client_test': False,
2696 'pepper_interface': 'Query', 2747 'pepper_interface': 'Query',
2697 }, 2748 },
2749 'EndTransformFeedback': {
2750 'unsafe': True,
2751 },
2698 'GetQueryivEXT': { 2752 'GetQueryivEXT': {
2699 'gen_cmd': False, 2753 'gen_cmd': False,
2700 'client_test': False, 2754 'client_test': False,
2701 'gl_test_func': 'glGetQueryiv', 2755 'gl_test_func': 'glGetQueryiv',
2702 'pepper_interface': 'Query', 2756 'pepper_interface': 'Query',
2703 }, 2757 },
2704 'GetQueryObjectuivEXT': { 2758 'GetQueryObjectuivEXT': {
2705 'gen_cmd': False, 2759 'gen_cmd': False,
2706 'client_test': False, 2760 'client_test': False,
2707 'gl_test_func': 'glGetQueryObjectuiv', 2761 'gl_test_func': 'glGetQueryObjectuiv',
(...skipping 595 matching lines...) Expand 10 before | Expand all | Expand 10 after
3303 def WriteValidUnitTest(self, func, file, test, *extras): 3357 def WriteValidUnitTest(self, func, file, test, *extras):
3304 """Writes a valid unit test for the service implementation.""" 3358 """Writes a valid unit test for the service implementation."""
3305 if func.GetInfo('expectation') == False: 3359 if func.GetInfo('expectation') == False:
3306 test = self._remove_expected_call_re.sub('', test) 3360 test = self._remove_expected_call_re.sub('', test)
3307 name = func.name 3361 name = func.name
3308 arg_strings = [ 3362 arg_strings = [
3309 arg.GetValidArg(func) \ 3363 arg.GetValidArg(func) \
3310 for arg in func.GetOriginalArgs() if not arg.IsConstant() 3364 for arg in func.GetOriginalArgs() if not arg.IsConstant()
3311 ] 3365 ]
3312 gl_arg_strings = [ 3366 gl_arg_strings = [
3313 "_" if func.MatchAll() else arg.GetValidGLArg(func) \ 3367 arg.GetValidGLArg(func) \
3314 for arg in func.GetOriginalArgs() 3368 for arg in func.GetOriginalArgs()
3315 ] 3369 ]
3316 gl_func_name = func.GetGLTestFunctionName() 3370 gl_func_name = func.GetGLTestFunctionName()
3317 vars = { 3371 vars = {
3318 'name':name, 3372 'name':name,
3319 'gl_func_name': gl_func_name, 3373 'gl_func_name': gl_func_name,
3320 'args': ", ".join(arg_strings), 3374 'args': ", ".join(arg_strings),
3321 'gl_args': ", ".join(gl_arg_strings), 3375 'gl_args': ", ".join(gl_arg_strings),
3322 } 3376 }
3323 for extra in extras: 3377 for extra in extras:
3324 vars.update(extra) 3378 vars.update(extra)
3325 old_test = "" 3379 old_test = ""
3326 while (old_test != test): 3380 while (old_test != test):
3327 old_test = test 3381 old_test = test
3328 test = test % vars 3382 test = test % vars
3329 file.Write(test % vars) 3383 file.Write(test % vars)
3330 3384
3331 def WriteInvalidUnitTest(self, func, file, test, *extras): 3385 def WriteInvalidUnitTest(self, func, file, test, *extras):
3332 """Writes an invalid unit test for the service implementation.""" 3386 """Writes an invalid unit test for the service implementation."""
3387 if func.IsUnsafe():
3388 return
3333 for invalid_arg_index, invalid_arg in enumerate(func.GetOriginalArgs()): 3389 for invalid_arg_index, invalid_arg in enumerate(func.GetOriginalArgs()):
3334 # Service implementation does not test constants, as they are not part of 3390 # Service implementation does not test constants, as they are not part of
3335 # the call in the service side. 3391 # the call in the service side.
3336 if invalid_arg.IsConstant(): 3392 if invalid_arg.IsConstant():
3337 continue 3393 continue
3338 3394
3339 num_invalid_values = invalid_arg.GetNumInvalidValues(func) 3395 num_invalid_values = invalid_arg.GetNumInvalidValues(func)
3340 for value_index in range(0, num_invalid_values): 3396 for value_index in range(0, num_invalid_values):
3341 arg_strings = [] 3397 arg_strings = []
3342 parse_result = "kNoError" 3398 parse_result = "kNoError"
(...skipping 2986 matching lines...) Expand 10 before | Expand all | Expand 10 after
6329 6385
6330 code = """ typedef cmds::%(func_name)s::Result Result; 6386 code = """ typedef cmds::%(func_name)s::Result Result;
6331 Result* result_dst = GetSharedMemoryAs<Result*>( 6387 Result* result_dst = GetSharedMemoryAs<Result*>(
6332 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); 6388 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst));
6333 if (!result_dst) { 6389 if (!result_dst) {
6334 return error::kOutOfBounds; 6390 return error::kOutOfBounds;
6335 } 6391 }
6336 """ 6392 """
6337 file.Write(code % {'func_name': func.name}) 6393 file.Write(code % {'func_name': func.name})
6338 func.WriteHandlerValidation(file) 6394 func.WriteHandlerValidation(file)
6395 if func.IsUnsafe() and func.GetInfo('id_mapping'):
6396 for id_type in func.GetInfo('id_mapping'):
6397 file.Write(" group_->Get%sServiceId(%s, &%s);\n" %
6398 (id_type, id_type.lower(), id_type.lower()))
6339 file.Write(" *result_dst = %s(%s);\n" % 6399 file.Write(" *result_dst = %s(%s);\n" %
6340 (func.GetGLFunctionName(), func.MakeOriginalArgString(""))) 6400 (func.GetGLFunctionName(), func.MakeOriginalArgString("")))
6341 file.Write(" return error::kNoError;\n") 6401 file.Write(" return error::kNoError;\n")
6342 file.Write("}\n") 6402 file.Write("}\n")
6343 file.Write("\n") 6403 file.Write("\n")
6344 6404
6345 def WriteGLES2Implementation(self, func, file): 6405 def WriteGLES2Implementation(self, func, file):
6346 """Overrriden from TypeHandler.""" 6406 """Overrriden from TypeHandler."""
6347 impl_func = func.GetInfo('impl_func') 6407 impl_func = func.GetInfo('impl_func')
6348 if impl_func == None or impl_func == True: 6408 if impl_func == None or impl_func == True:
(...skipping 962 matching lines...) Expand 10 before | Expand all | Expand 10 after
7311 self.type_handler.InitFunction(self) 7371 self.type_handler.InitFunction(self)
7312 7372
7313 def IsImmediate(self): 7373 def IsImmediate(self):
7314 """Returns whether the function is immediate data function or not.""" 7374 """Returns whether the function is immediate data function or not."""
7315 return False 7375 return False
7316 7376
7317 def IsUnsafe(self): 7377 def IsUnsafe(self):
7318 """Returns whether the function has service side validation or not.""" 7378 """Returns whether the function has service side validation or not."""
7319 return self.GetInfo('unsafe', False) 7379 return self.GetInfo('unsafe', False)
7320 7380
7321 def MatchAll(self):
7322 """ Returns whether an EXPECT_GL arg matches any input value."""
7323 return self.GetInfo('match_all', False)
7324
7325 def GetInfo(self, name, default = None): 7381 def GetInfo(self, name, default = None):
7326 """Returns a value from the function info for this function.""" 7382 """Returns a value from the function info for this function."""
7327 if name in self.info: 7383 if name in self.info:
7328 return self.info[name] 7384 return self.info[name]
7329 return default 7385 return default
7330 7386
7331 def GetValidArg(self, arg): 7387 def GetValidArg(self, arg):
7332 """Gets a valid argument value for the parameter arg from the function info 7388 """Gets a valid argument value for the parameter arg from the function info
7333 if one exists.""" 7389 if one exists."""
7334 try: 7390 try:
(...skipping 1842 matching lines...) Expand 10 before | Expand all | Expand 10 after
9177 Format(gen.generated_cpp_filenames) 9233 Format(gen.generated_cpp_filenames)
9178 9234
9179 if gen.errors > 0: 9235 if gen.errors > 0:
9180 print "%d errors" % gen.errors 9236 print "%d errors" % gen.errors
9181 return 1 9237 return 1
9182 return 0 9238 return 0
9183 9239
9184 9240
9185 if __name__ == '__main__': 9241 if __name__ == '__main__':
9186 sys.exit(main(sys.argv[1:])) 9242 sys.exit(main(sys.argv[1:]))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698