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

Side by Side Diff: third_party/libxml/src/build_glob.py

Issue 1193533007: Upgrade to libxml 2.9.2 and libxslt 1.1.28 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove suppressions, have landed in blink now Created 5 years, 6 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
(Empty)
1 #! /usr/bin/env python
2 ###
3 #
4 # build_glob.py : Build the global_functions.h and global_functions.c
5 # files which are required to implement the user
6 # interface to global variables now that thread specific
7 # data (TSD) is used to emulate global state.
8 #
9 # See Copyright for the status of this software.
10 # Gary.Pennington@sun.com
11 ###
12 import os, string
13
14 class globvar:
15 def __init__(self, type, name):
16 self.type=type
17 self.name=name
18
19 def striplinesep(line):
20 while line and line[-1] in ('\r','\n'):
21 line = line[:-1]
22 return line
23
24 def writeline(file, line=None):
25 if line:
26 file.write(line)
27 file.write("\n")
28
29 if __name__ == "__main__":
30 globals={}
31 global_data=open("global.data").readlines()
32 global_code=open("globals.c").readlines()
33 global_hdr=open("include/libxml/globals.h").readlines()
34 global_functions_hdr=open("include/libxml/globals.h", "w+")
35 global_functions_impl=open("globals.c", "w+")
36
37 #
38 # Rebuild the beginning of the file up to the
39 # Automatically generated string
40 #
41 for line in global_hdr:
42 line = striplinesep(line)
43 if line == " * Automatically generated by build_glob.py.":
44 break
45 writeline(global_functions_hdr, line)
46
47 writeline(global_functions_hdr, " * Automatically generated by build_glob.py .")
48 writeline(global_functions_hdr, " * Do not modify the previous line.")
49 writeline(global_functions_hdr, " */")
50 writeline(global_functions_hdr)
51
52 for line in global_code:
53 line = striplinesep(line)
54 if line == " * Automatically generated by build_glob.py.":
55 break
56 writeline(global_functions_impl, line)
57
58 writeline(global_functions_impl, " * Automatically generated by build_glob.p y.")
59 writeline(global_functions_impl, " * Do not modify the previous line.")
60 writeline(global_functions_impl, " */")
61 writeline(global_functions_impl)
62
63 # Now process the data and write it to the appropriate output file
64 for line in global_data:
65 if line[0]=='#':
66 continue
67 line = striplinesep(line)
68 fields = string.split(line, ",")
69 # Update the header file
70 writeline(global_functions_hdr)
71 global_functions_hdr.write("extern "+fields[0]+" *")
72 if fields[2]:
73 global_functions_hdr.write("(*")
74 global_functions_hdr.write("__"+fields[1]+"(void)")
75 if fields[2]:
76 global_functions_hdr.write(")"+fields[2])
77 writeline(global_functions_hdr,";")
78 writeline(global_functions_hdr, "#ifdef LIBXML_THREAD_ENABLED")
79 writeline(global_functions_hdr,"#define "+fields[1]+" \\")
80 writeline(global_functions_hdr,"(*(__"+fields[1]+"()))")
81 writeline(global_functions_hdr,"#else")
82 if fields[2]:
83 writeline(global_functions_hdr,"LIBXML_DLL_IMPORT extern "+fields[0] +" "+fields[1]+fields[2]+";")
84 else:
85 writeline(global_functions_hdr,"LIBXML_DLL_IMPORT extern "+fields[0] +" "+fields[1]+";")
86 writeline(global_functions_hdr,"#endif")
87 # set/get for per-thread global defaults
88 if fields[3]:
89 writeline(global_functions_hdr,fields[0]+" "+fields[1][:3]+"ThrDef"+ fields[1][3:]+"("+fields[0]+" v);")
90 # Update the implementation file
91 writeline(global_functions_impl)
92 # writeline(global_functions_impl, "extern "+fields[0]+" "+fields[1]+";")
93 writeline(global_functions_impl, "#undef\t"+fields[1])
94 writeline(global_functions_impl, fields[0]+" *")
95 if fields[2]:
96 global_functions_impl.write("(*")
97 global_functions_impl.write("__"+fields[1]+"(void)")
98 if fields[2]:
99 writeline(global_functions_impl, ")[]")
100 writeline(global_functions_impl, " {")
101 writeline(global_functions_impl, " if (IS_MAIN_THREAD)")
102 writeline(global_functions_impl, "\treturn (&"+fields[1]+");")
103 writeline(global_functions_impl, " else")
104 writeline(global_functions_impl, "\treturn (&xmlGetGlobalState()->"+fiel ds[1]+");")
105 writeline(global_functions_impl, "}")
106 # set/get for per-thread global defaults
107 if fields[3]:
108 writeline(global_functions_impl,fields[0]+" "+fields[1][:3]+"ThrDef" +fields[1][3:]+"("+fields[0]+" v) {")
109 writeline(global_functions_impl," "+fields[0]+" ret;");
110 writeline(global_functions_impl," xmlMutexLock(xmlThrDefMutex);")
111 writeline(global_functions_impl," ret = "+fields[1][:3]+fields[1] [3:]+"ThrDef;")
112 writeline(global_functions_impl," "+fields[1][:3]+fields[1][3:]+" ThrDef = v;")
113 writeline(global_functions_impl," xmlMutexUnlock(xmlThrDefMutex); ")
114 writeline(global_functions_impl," return ret;")
115 writeline(global_functions_impl,"}")
116 # Terminate the header file with appropriate boilerplate
117 writeline(global_functions_hdr)
118 writeline(global_functions_hdr, "#ifdef __cplusplus")
119 writeline(global_functions_hdr, "}")
120 writeline(global_functions_hdr, "#endif")
121 writeline(global_functions_hdr)
122 writeline(global_functions_hdr, "#endif /* __XML_GLOBALS_H */")
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698