| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Originally the values of an enum were registered in the scope that
enclosed the enum declaration, just like C++ does, now in addition
to this the values are registered inside the enum type.
To exemplify, the following C++ enum:
Scope {
enum Foo {
Value
};
};
can be accessed in Python as this:
Scope.Value
as well as this:
Scope.Foo.Value
The enum unit tests were expanded to check for this new behaviour.
Reviewed by Luciano Wolf <luciano.wolf@openbossa.org>
|
|
|
|
|
|
| |
unsigned integer expressions.
Reviewed by Renato Araújo <renato.filho@openbossa.org>
|
|
|
|
|
|
|
| |
pointer.
The test function 'countCharacters(const char*)' now returns -1 when
receiving a null pointer.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now the user can build new values of a particular enum type passing
an integer to its constructor. Thus, the following C++ code:
MyEnum val = (MyEnum) 1;
is the equivalent of this Python code:
val = MyEnum(1)
The enum unit tests were also updated.
Reviewed by Lauro Moura <lauro.neto@openbossa.org>
|
| |
|
|
|
|
| |
Reviewed by Marcelo Lira <marcelo.lira@openbossa.org>
|
|
|
|
| |
Reviewed by Marcelo Lira <marcelo.lira@openbossa.org>
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Three kinds of types are represented: primitive, value and object types.
The unit tests also check for correct reference counting.
|
|
|
|
| |
Reviewed by Marcelo Lira <marcelo.lira@openbossa.org>
|
|
|
|
| |
Reviewed by Lauro Moura <lauro.neto@openbossa.org>
|
|
|
|
|
| |
Argument removal and type modification no longer affects the generation
of virtual method signatures in the binding code.
|
| |
|
|
|
|
|
|
| |
Now sorting OverloadData recursively
Reviewer: Renato Filho <renato.filho@openbossa.org>
|
|
|
|
| |
Reviewed by Hugo Parente <hugo.lima@openbossa.org>
|
|
|
|
|
|
|
| |
- 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>
|