| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
- Flag for types with private destructor
- Cleaning weakrefs in normal destructor
Reviewed by Hugo Parente <hugo.lima@openbossa.org>
|
|
|
|
| |
Reviewer: Renato Filho <renato.filho@openbossa.org>
|
|
|
|
|
|
| |
the object being constructed before it was fully constructed.
For this use case, use inject-code with position=end.
|
|
|
|
|
|
| |
C++ and have an
implementation in Python.
|
|
|
|
| |
Reviewed by Hugo Parente <hugo.lima@openbossa.org>
|
|
|
|
| |
Reviewed by Marcelo Lira <marcelo.lira@openbossa.org>
|
| |
|
|
|
|
|
|
|
|
|
| |
A new converter specialization was added to deal with 'void*'
conversions. In the case of C++ generating a unknown void pointer
a BaseWrapper is used to hold the said pointer.
There is a new test for this situation.
Reviewed by Renato Araújo <renato.filho@openbossa.org>
|
|
|
|
|
|
|
|
|
|
| |
It was renamed to PySequenceToArgcArgv and a new argument was added, besides some documentation.
If the sequence is empty and defaultAppName (the new argument) was provided, argc will be 1 and
argv will have a copy of defaultAppName because some libraries, like Qt, need at least one element
in argv (the application name), otherwise it'll crash somewhere inside Qt.
Reviewed by Luciano Wolf <luciano.wolf@openbossa.org>
|
| |
|
|
|
|
| |
Reviewed by Marcelo Lira <marcelo.lira@openbossa.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The simplest definition of duck punching for our purposes is
the ability to change the definition of a method in an instance of
a class.
To allow this behaviour the SbkBaseWrapper structure had to be
extended with a 'ob_dict' which is a PyObject pointer to the instance
dictionary. It is originally set to NULL until the user tries to access
it. This dictionary could be accessed through the '__dict__' instance
property. For now it is read-only.
The generator was updated to handle the instance dictionary, and an
extensive duck punching test was also added.
Reviewed by Hugo Parente Lima <hugo.lima@openbossa.org>
|
|
|
|
| |
Reviewed by Marcelo Lira <marcelo.lira@openbossa.org>
|
|
|
|
|
| |
Added a virtual method marked to allow threads and tests for C++
calling it and also a Python reimplemented version.
|
|
|
|
|
|
|
|
|
|
| |
The code to write the definition of cppSelf was in two places and
contained an #ifdef clause, now it is a writer method.
Also added the ShibokenGenerator::cppSelfVariableName() method
to be used instead of directly writing the "cppSelf" string.
Updated custom code on test binding to remove warning.
Reviewed by Hugo Parente Lima <hugo.lima@openbossa.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Event loop - calling virtual methods from C++
- Event loop with thread - calling virtuals from C++ along with
accessing the binding from another python
thread
- Thread locking - blocker C++ method that is unlocked from another
python thread
For these tests, a new ObjectType subclass was added, Bucket, which
is just a container for the producer/consumer tests and has the
lock/unlock method.
Reviewed by Marcelo Lira <marcelo.lira@openbossa.org>
|
|
|
|
|
|
| |
A code injection on the tests was updated.
Reviewed by Hugo Parente Lima <hugo.lima@openbossa.org>
|
|
|
|
|
|
| |
because we can't
pass a object with nonpublic destructor by value.
|
| |
|
|
|
|
|
|
| |
bindinded method names.
Reviewed by Marcelo Lira <marcelo.lira@openbossa.org>
|
| |
|
|
|
|
|
|
|
|
| |
New test library and corresponding binding were added to check for
intermodule problems. The CMake linkage type for the modules had to
be changed from MODULE to SHARED.
Reviewed by Hugo Parente <hugo.lima@openbossa.org>
|
|
|
|
|
|
|
|
|
|
| |
The new test adds a "toInt(bool* ok = 0, int base = 10)" method to
Str class. The modification uses a type system template function
that uses the variable "%2" to reference the "base" argument; in
the case when the thing is called without parameters "%2" should be
replaced by "10" instead of a converted C++ variable name.
Reviewed by Hugo Parente <hugo.lima@openbossa.org>
|
|
|
|
|
|
|
| |
C++ returns a new instance of Derived as its ancestor Abstract pointer
and the bindings must produce a Python wrapper of Derived type.
Reviewed by Hugo Parente <hugo.lima@openbossa.org>
|
| |
|
|
|
|
| |
Reviewed by Hugo Lima <hugo.lima@openbossa.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added a test for simple implicit numerical conversions involving
doubles, signed and unsigned ints and longs.
Some fixes to the converters were also made, mostly related to
adding manual checks for boundaries with doubles for negative values
Also put the overflow check in a single template
Reviewer: Marcelo Lira <marcelo.lira@openbossa.org>
|
|
|
|
| |
Reviewed by Lauro Neto <lauro.neto@openbossa.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The %# group of type system variables are meant to be replaced by
C++ arguments and %PYARG_# by Python arguments. For some reason %0
is replaced by the Python return variable and %PYARG_0 is considered
invalid by the replacement system. Now %PYARG_0 is replaced by
the Python return variable and %0 by the C++ version.
The %CONVERTTOCPP type system variable was added.
Fixed ShibokenGenerator::injectedCodeHasReturnValueAttribution to
consider a return value attribution when the user does "%PYARG_0 = ..."
instead of "%0 = ...".
The changes were documented and all the test bindings inject codes
were updated to use the modified variables properly.
Reviewed by Hugo Lima <hugo.lima@openbossa.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To avoid confusion of Python stuff with Shiboken generated stuff.
For example: a C++ class called "String" would have the PyString_Type
wrapper generated for it, mixing with the proper Python PyString_Type;
now the generate code will have things like SbkString_Type, SbkString_New,
SbkString_someMethod, and so on.
PyBaseWrapper and its variants were renamed to SbkBaseWrapper.
PyType<T>() is now SbkType<T>()
PyEnumObject was renamed to SbkEnumObject.
|
|
|
|
|
|
|
| |
StrList class inherits from std::list<Str> and expand it with a
couple of methods. The added tests perform many different comparisons
using other StrList objects, Python sequences of Str objects,
and Python sequences of Python strings.
|
|
|
|
|
|
|
| |
The implementation of converters for pair, list and map containers was
moved from libsample test binding to libshiboken/conversions.h. The
implementation must be used with types similar to the C++ STL containers
of the same name.
|
|
|
|
|
|
| |
Unit tests were added also.
Reviewed by Hugo Lima <hugo.lima@openbossa.org>
|
|
|
|
| |
inheritance.
|
|
|
|
|
|
| |
ObjectType.
Reviewed by Lauro Neto <lauro.neto@openbossa.org>
|
|
|
|
| |
grand grand parent methods.
|
|
|
|
| |
parent method.
|
|
|
|
| |
Reviewed by Lauro Neto <lauro.neto@openbossa.org>
|
|
|
|
| |
custom type.
|
|
|
|
|
|
|
|
| |
In the new test case an ObjectType uses a layout that contains another
layout, both created in C++, and then get deleted. Custom code was used
to achieve the correct parentship handling
Reviewed by Hugo Lima <hugo.lima@openbossa.org>
|
|
|
|
|
|
|
| |
The parentship was expressed inverted in the type system and was
working because the generator implementation was also screwed.
Reviewed by Hugo Lima <hugo.lima@openbossa.org>
|
|
|
|
| |
Also added more test cases that use ObjectTypeLayout.
|
| |
|
|
|
|
| |
Reviewed by Marcelo Lira <marcelo.lira@openbossa.org>
|
| |
|
|
|
|
| |
Reviewed by Marcelo Lira <marcelo.lira@openbossa.org>
|
|
|
|
|
| |
When enabled, this heuristic will check every constructor for an argument named "parent",
if the argument is a pointer, then it'll be the parent of this object.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Simple ownership transference, i.e. without parenting, is now performed
by the new BindingManager::transferOwnershipToCpp method. It remove the
parent of the transfered object and proceeds transfer or invalidation
if needed. The generated code for simple ownership transfer from Python
to C++ now reflects this change.
Fixed the method BlackBox::keepObjectType that steals an ObjectType
ownership to C++ to remove it from its parent also. The BlackBox
class does not take care of the stolen object as a proper parent
would, but its destructor deletes the object, so the "unparenting"
is needed to avoid freeing the same memory twice.
Created an unit test that adds children to a parent ObjectType and then
steal the children to C++ with BlackBox.keepObjectType.
Reviewed by Hugo Lima <hugo.lima@openbossa.org>
|