Initial commit
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
diff --git a/scripts/wrap/parse.py b/scripts/wrap/parse.py
|
||||
index 1954101af..7079c8170 100644
|
||||
--- a/scripts/wrap/parse.py
|
||||
+++ b/scripts/wrap/parse.py
|
||||
@@ -2,6 +2,7 @@
|
||||
Support for accessing parse tree for MuPDF headers.
|
||||
'''
|
||||
|
||||
+import collections
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
@@ -9,7 +10,7 @@ import time
|
||||
import jlib
|
||||
|
||||
try:
|
||||
- import clang
|
||||
+ import clang.cindex
|
||||
except ImportError as e:
|
||||
jlib.log( 'Warning, could not import clang: {e}')
|
||||
clang = None
|
||||
@@ -487,6 +488,10 @@ class Arg:
|
||||
|
||||
get_args_cache = dict()
|
||||
|
||||
+# get_args() needs to know how to get something hashable from a clang.cindex.Cursor.
|
||||
+if clang:
|
||||
+ g_cursor_is_hashable = issubclass(clang.cindex.Cursor, collections.abc.Hashable)
|
||||
+
|
||||
def get_args( tu, cursor, include_fz_context=False, skip_first_alt=False, verbose=False):
|
||||
'''
|
||||
Yields Arg instance for each arg of the function at <cursor>.
|
||||
@@ -509,7 +514,10 @@ def get_args( tu, cursor, include_fz_context=False, skip_first_alt=False, verbos
|
||||
#
|
||||
if verbose:
|
||||
jlib.log( '## Looking at args of {cursor.spelling=}')
|
||||
- key = tu, cursor.location.file, cursor.location.line, include_fz_context, skip_first_alt
|
||||
+ if g_cursor_is_hashable:
|
||||
+ key = tu, cursor, include_fz_context, skip_first_alt
|
||||
+ else:
|
||||
+ key = tu, cursor.location.file, cursor.location.line, include_fz_context, skip_first_alt
|
||||
ret = get_args_cache.get( key)
|
||||
if not verbose and state.state_.show_details(cursor.spelling):
|
||||
verbose = True
|
||||
Reference in New Issue
Block a user