Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
L
libplist
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
pwn
libplist
Commits
b1ad30f5
Commit
b1ad30f5
authored
Sep 26, 2011
by
Bryan Forbes
Committed by
Nikias Bassen
Sep 26, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
More qualifiers.
parent
bf1dcaec
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
23 additions
and
19 deletions
+23
-19
plist.pxd
cython/plist.pxd
+4
-4
plist.pyx
cython/plist.pyx
+19
-15
No files found.
cython/plist.pxd
View file @
b1ad30f5
...
@@ -24,15 +24,15 @@ cdef class Real(Node):
...
@@ -24,15 +24,15 @@ cdef class Real(Node):
cpdef float get_value(self)
cpdef float get_value(self)
cdef class String(Node):
cdef class String(Node):
cpdef set_value(self,
unicode
value)
cpdef set_value(self,
object
value)
cpdef unicode get_value(self)
cpdef unicode get_value(self)
cdef class Date(Node):
cdef class Date(Node):
cpdef set_value(self, value)
cpdef set_value(self,
object
value)
cpdef object get_value(self)
cpdef object get_value(self)
cdef class Data(Node):
cdef class Data(Node):
cpdef set_value(self,
bytes
value)
cpdef set_value(self,
object
value)
cpdef bytes get_value(self)
cpdef bytes get_value(self)
cdef class Dict(Node):
cdef class Dict(Node):
...
@@ -54,7 +54,7 @@ cdef class Array(Node):
...
@@ -54,7 +54,7 @@ cdef class Array(Node):
cdef void _init(self)
cdef void _init(self)
cpdef set_value(self, value)
cpdef set_value(self, value)
cpdef list get_value(self)
cpdef list get_value(self)
cpdef append(self, item)
cpdef append(self,
object
item)
cpdef object from_xml(xml)
cpdef object from_xml(xml)
cpdef object from_bin(bytes bin)
cpdef object from_bin(bytes bin)
...
...
cython/plist.pyx
View file @
b1ad30f5
...
@@ -107,7 +107,8 @@ cdef class Node:
...
@@ -107,7 +107,8 @@ cdef class Node:
try:
try:
return python_unicode.PyUnicode_DecodeUTF8(out, length, 'strict')
return python_unicode.PyUnicode_DecodeUTF8(out, length, 'strict')
finally:
finally:
stdlib.free(out)
if out != NULL:
stdlib.free(out)
cpdef bytes to_bin(self):
cpdef bytes to_bin(self):
cdef:
cdef:
...
@@ -118,7 +119,8 @@ cdef class Node:
...
@@ -118,7 +119,8 @@ cdef class Node:
try:
try:
return python_string.PyString_FromStringAndSize(out, length)
return python_string.PyString_FromStringAndSize(out, length)
finally:
finally:
stdlib.free(out)
if out != NULL:
stdlib.free(out)
property parent:
property parent:
def __get__(self):
def __get__(self):
...
@@ -135,7 +137,7 @@ cdef class Node:
...
@@ -135,7 +137,7 @@ cdef class Node:
return str(self.get_value())
return str(self.get_value())
cdef class Bool(Node):
cdef class Bool(Node):
def __cinit__(self, value=None, *args, **kwargs):
def __cinit__(self,
object
value=None, *args, **kwargs):
if value is None:
if value is None:
self._c_node = plist_new_bool(0)
self._c_node = plist_new_bool(0)
else:
else:
...
@@ -178,7 +180,7 @@ cdef Bool Bool_factory(plist_t c_node, bint managed=True):
...
@@ -178,7 +180,7 @@ cdef Bool Bool_factory(plist_t c_node, bint managed=True):
return instance
return instance
cdef class Integer(Node):
cdef class Integer(Node):
def __cinit__(self, value=None, *args, **kwargs):
def __cinit__(self,
object
value=None, *args, **kwargs):
if value is None:
if value is None:
self._c_node = plist_new_uint(0)
self._c_node = plist_new_uint(0)
else:
else:
...
@@ -224,7 +226,7 @@ cdef Integer Integer_factory(plist_t c_node, bint managed=True):
...
@@ -224,7 +226,7 @@ cdef Integer Integer_factory(plist_t c_node, bint managed=True):
return instance
return instance
cdef class Real(Node):
cdef class Real(Node):
def __cinit__(self, value=None, *args, **kwargs):
def __cinit__(self,
object
value=None, *args, **kwargs):
if value is None:
if value is None:
self._c_node = plist_new_real(0.0)
self._c_node = plist_new_real(0.0)
else:
else:
...
@@ -272,7 +274,7 @@ cdef Real Real_factory(plist_t c_node, bint managed=True):
...
@@ -272,7 +274,7 @@ cdef Real Real_factory(plist_t c_node, bint managed=True):
from python_version cimport PY_MAJOR_VERSION
from python_version cimport PY_MAJOR_VERSION
cdef class String(Node):
cdef class String(Node):
def __cinit__(self, value=None, *args, **kwargs):
def __cinit__(self,
object
value=None, *args, **kwargs):
cdef:
cdef:
char* c_utf8_data = NULL
char* c_utf8_data = NULL
bytes utf8_data
bytes utf8_data
...
@@ -308,7 +310,7 @@ cdef class String(Node):
...
@@ -308,7 +310,7 @@ cdef class String(Node):
if op == 5:
if op == 5:
return s >= other
return s >= other
cpdef set_value(self,
unicode
value):
cpdef set_value(self,
object
value):
cdef:
cdef:
char* c_utf8_data = NULL
char* c_utf8_data = NULL
bytes utf8_data
bytes utf8_data
...
@@ -357,7 +359,7 @@ cdef plist_t create_date_plist(value=None):
...
@@ -357,7 +359,7 @@ cdef plist_t create_date_plist(value=None):
return node
return node
cdef class Date(Node):
cdef class Date(Node):
def __cinit__(self, value=None, *args, **kwargs):
def __cinit__(self,
object
value=None, *args, **kwargs):
self._c_node = create_date_plist(value)
self._c_node = create_date_plist(value)
def __repr__(self):
def __repr__(self):
...
@@ -401,7 +403,7 @@ cdef Date Date_factory(plist_t c_node, bint managed=True):
...
@@ -401,7 +403,7 @@ cdef Date Date_factory(plist_t c_node, bint managed=True):
return instance
return instance
cdef class Data(Node):
cdef class Data(Node):
def __cinit__(self, value=None, *args, **kwargs):
def __cinit__(self,
object
value=None, *args, **kwargs):
if value is None:
if value is None:
self._c_node = plist_new_data(NULL, 0)
self._c_node = plist_new_data(NULL, 0)
else:
else:
...
@@ -437,8 +439,10 @@ cdef class Data(Node):
...
@@ -437,8 +439,10 @@ cdef class Data(Node):
finally:
finally:
stdlib.free(val)
stdlib.free(val)
cpdef set_value(self, bytes value):
cpdef set_value(self, object value):
plist_set_data_val(self._c_node, value, len(value))
cdef:
bytes py_val = value
plist_set_data_val(self._c_node, py_val, len(value))
cdef Data Data_factory(plist_t c_node, bint managed=True):
cdef Data Data_factory(plist_t c_node, bint managed=True):
cdef Data instance = Data.__new__(Data)
cdef Data instance = Data.__new__(Data)
...
@@ -460,7 +464,7 @@ cdef plist_t create_dict_plist(object value=None):
...
@@ -460,7 +464,7 @@ cdef plist_t create_dict_plist(object value=None):
cimport python_dict
cimport python_dict
cdef class Dict(Node):
cdef class Dict(Node):
def __cinit__(self, value=None, *args, **kwargs):
def __cinit__(self,
object
value=None, *args, **kwargs):
self._c_node = create_dict_plist(value)
self._c_node = create_dict_plist(value)
def __init__(self, value=None, *args, **kwargs):
def __init__(self, value=None, *args, **kwargs):
...
@@ -584,7 +588,7 @@ cdef plist_t create_array_plist(object value=None):
...
@@ -584,7 +588,7 @@ cdef plist_t create_array_plist(object value=None):
return node
return node
cdef class Array(Node):
cdef class Array(Node):
def __cinit__(self, value=None, *args, **kwargs):
def __cinit__(self,
object
value=None, *args, **kwargs):
self._c_node = create_array_plist(value)
self._c_node = create_array_plist(value)
def __init__(self, value=None, *args, **kwargs):
def __init__(self, value=None, *args, **kwargs):
...
@@ -623,7 +627,7 @@ cdef class Array(Node):
...
@@ -623,7 +627,7 @@ cdef class Array(Node):
cpdef list get_value(self):
cpdef list get_value(self):
return [i.get_value() for i in self]
return [i.get_value() for i in self]
cpdef set_value(self, value):
cpdef set_value(self,
object
value):
self._array = []
self._array = []
plist_free(self._c_node)
plist_free(self._c_node)
self._c_node = NULL
self._c_node = NULL
...
@@ -655,7 +659,7 @@ cdef class Array(Node):
...
@@ -655,7 +659,7 @@ cdef class Array(Node):
del self._array[index]
del self._array[index]
plist_array_remove_item(self._c_node, index)
plist_array_remove_item(self._c_node, index)
cpdef append(self, item):
cpdef append(self,
object
item):
cdef Node n
cdef Node n
if isinstance(item, Node):
if isinstance(item, Node):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment