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

Side by Side Diff: third_party/yasm/patched-yasm/tools/python-yasm/value.pxi

Issue 6170009: Update our yasm copy to yasm 1.1.0 (Part 1: yasm side)... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/
Patch Set: Created 9 years, 11 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 | Annotate | Revision Log
OLDNEW
1 # Python bindings for Yasm: Pyrex input file for value.h 1 # Python bindings for Yasm: Pyrex input file for value.h
2 # 2 #
3 # Copyright (C) 2006 Michael Urman, Peter Johnson 3 # Copyright (C) 2006 Michael Urman, Peter Johnson
4 # 4 #
5 # Redistribution and use in source and binary forms, with or without 5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions 6 # modification, are permitted provided that the following conditions
7 # are met: 7 # are met:
8 # 1. Redistributions of source code must retain the above copyright 8 # 1. Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer. 9 # notice, this list of conditions and the following disclaimer.
10 # 2. Redistributions in binary form must reproduce the above copyright 10 # 2. Redistributions in binary form must reproduce the above copyright
11 # notice, this list of conditions and the following disclaimer in the 11 # notice, this list of conditions and the following disclaimer in the
12 # documentation and/or other materials provided with the distribution. 12 # documentation and/or other materials provided with the distribution.
13 # 13 #
14 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND OTHER CONTRIBUTORS ``AS IS'' 14 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND OTHER CONTRIBUTORS ``AS IS''
15 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR OTHER CONTRIBUTORS BE 17 # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR OTHER CONTRIBUTORS BE
18 # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 18 # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 19 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 20 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 21 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 22 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 23 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 # POSSIBILITY OF SUCH DAMAGE. 24 # POSSIBILITY OF SUCH DAMAGE.
25 25
26 cdef class Value: 26 cdef class Value:
27 cdef yasm_value value 27 cdef yasm_value value
28 def __new__(self, value=None, size=None): 28 def __cinit__(self, value=None, size=None):
29 cdef unsigned int sz 29 cdef unsigned int sz
30 if size is None: 30 if size is None:
31 sz = 0 31 sz = 0
32 else: 32 else:
33 sz = size; 33 sz = size;
34 34
35 yasm_value_initialize(&self.value, NULL, sz) 35 yasm_value_initialize(&self.value, NULL, sz)
36 if value is None: 36 if value is None:
37 pass 37 pass
38 elif isinstance(value, Expression): 38 elif isinstance(value, Expression):
39 yasm_value_initialize(&self.value, 39 yasm_value_initialize(&self.value,
40 yasm_expr_copy((<Expression>value).expr), sz) 40 yasm_expr_copy((<Expression>value).expr), sz)
41 elif isinstance(value, Symbol): 41 elif isinstance(value, Symbol):
42 yasm_value_init_sym(&self.value, (<Symbol>value).sym, sz) 42 yasm_value_init_sym(&self.value, (<Symbol>value).sym, sz)
43 else: 43 else:
44 raise TypeError("Invalid value type '%s'" % type(value)) 44 raise TypeError("Invalid value type '%s'" % type(value))
45 45
46 def __dealloc__(self): 46 def __dealloc__(self):
47 yasm_value_delete(&self.value) 47 yasm_value_delete(&self.value)
48 48
49 def finalize(self, precbc=None): 49 def finalize(self, precbc=None):
50 if precbc is None: 50 if precbc is None:
51 return yasm_value_finalize(&self.value, NULL) 51 return yasm_value_finalize(&self.value, NULL)
52 elif isinstance(precbc, Bytecode): 52 elif isinstance(precbc, Bytecode):
53 return yasm_value_finalize(&self.value, (<Bytecode>precbc).bc) 53 return yasm_value_finalize(&self.value, (<Bytecode>precbc).bc)
54 else: 54 else:
55 raise TypeError("Invalid precbc type '%s'" % type(precbc)) 55 raise TypeError("Invalid precbc type '%s'" % type(precbc))
56 56
OLDNEW
« no previous file with comments | « third_party/yasm/patched-yasm/tools/python-yasm/symrec.pxi ('k') | third_party/yasm/patched-yasm/tools/re2c/Makefile.inc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698