| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ |
|
| |
| |
| |
| |
| | |
which returns a boolean indicating if there are cases of multiple inheritance
in any of its ancestors.
|
| |
| |
| |
| |
| | |
return an AbstractMetaClassList (AbstractMetaClass does not
provide such a method)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
now receive the multiple inheritance information, the initialization
function will be that of the first ancestor that have multiple
inheritance.
Example:
class MDerived : public Base1, public Base2
clas SonOfMDerived : public MDerived
MDerived defines the function PyMDerived_mi_init to register the
multiple inheritance information, and SonOfMDerived just uses the
ancestor function.
|
| | |
|
| |
| |
| |
| |
| | |
Used only by boostpythongenerator and remained untouched after the
Shiboken fork.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
ShibokenGenerator, it returns true if a code injection
on a virtual method override (a "native" inject-code) does
a call to the Python override.
Added the %PYTHON_METHOD_OVERRIDE type system variable,
it is replaced by the name of the pointer to a Python
method that represents an override to a C++ virtual method.
A code injection in the "native/end" position for a method
modification is now put before the dereferencing of the
variables used in the Python call (the method object and
the Python argument tuple).
If a call to the Python override method is detected on
code injections of the "native" class from method
modifications, the generator doesn't write the same
call again.
All documentation was updated with the changes.
|
| |
| |
| |
| |
| |
| |
| | |
if the user injected code uses the "%PYSELF" type system variable.
This is useful to provide the Python wrapper pointer to native
method code injections.
Also updated the documentation comment for injectedCodeUsesCppSelf.
|
| |
| |
| |
| |
| |
| | |
that checks if a function returning 'void' needs to have the Python method
wrapper return value set to Py_None. This happens when any of the other
overloads for the function return type is different from 'void'.
|
|/
|
|
|
|
|
|
|
| |
AbstractMetaArgument indicating the last C++ argument available
(i.e. converted from Python arguments to C++) to be used in the
type system variable replacement. If a variable in the user's
custom code is not ready, it is replaced by the argument default
value.
Also updated the documentation.
|
|
|
|
|
|
|
|
|
| |
by the proper Python type object depending on the context: method
or class modification. Also added an AbstractMetaClass argument
to ShibokenGenerator::writeCodeSnips to pass the needed context
information.
Reviewd by Luciano Wolf <luciano.wolf@openbossa.org>
|
|
|
|
| |
Reviewed by Marcelo Lira <marcelo.lira@openbossa.org>
|
|
|
|
|
|
| |
AbstractMetaFunction; one tells if the function uses the %CPPSELF
type system variable on its code snippets (if any), and the other
says if there is a call to the wrapped C++ function in the code snippets
|
|
|
|
|
|
|
|
|
|
| |
shiboken generator.
As shiboken generator needs minor changes to support inter-module dependencies, these changes
about symbol visibility does not support inter-module dependencies, however support it is
simple, because we just need to make some symbols visible to other DSO's.
Reviewed by Marcelo Lira <marcelo.lira@openbossa.org>
|
|
|
|
| |
Reviewed by Marcelo Lira <marcelo.lira@openbossa.org>
|
|
|
|
|
|
| |
forcing it to use the _CheckExact macro instead of the more permissive _Check;
one use of this is to check if a parameter is of exact type enum if a C++
method that receives an enum
|
|
|
|
|
| |
to TypeEntry* and added a convenience method that receives an
AbstractMetaType* and calls the new version of the method
|
|
|
|
|
| |
which checks if an argument type should be dereferenced by the Python
method wrapper before calling the C++ method
|
|
|
|
|
|
|
| |
that receives a TypeEntry* and uses only the basic type, ignoring
const, pointer or reference information;
ShibokenGenerator::cpythonIsConvertibleFunction now calls this
new version of writeBaseConversion
|
|
|
|
| |
QString to void since no one is using it anymore
|
|
|
|
|
|
| |
Generator class on (GeneratorRunner)
Reviewed by Hugo Parente <hugo.lima@openbossa.org>
|
|
|
|
|
| |
on Generator (from GeneratorRunner); also corrected the type in the
method name (also corrected on the base Generator class)
|
|
|
|
|
|
| |
the base method now uses TypeEntry* instead of AbstractMetaClass*
and checks if the TypeEntry represents a Value Type or an Object Type,
if not it returns an empty QString
|
|
|
|
| |
name if the argumentName parameter is not supplied
|
|
|
|
|
| |
Python object is convertible to the C++ type T, and not if it is of the same
type as T (this is done by the standard PyTYPENAME_Check macros)
|
|
|
|
|
|
|
|
|
|
| |
convention for every type to have the said macros; also, there are
some situations where one needs to now if a type is of this or
that kind, and not if it is convertible to other types;
the two ShibokenGenerator::cpythonCheckFunction reverted to the
previous behavior and the new stuff was moved to the methods
ShibokenGenerator::cpythonIsConvertibleFunction, and the places
from where they are called were changed accordingly
|
|
|
|
| |
dealt with to allow future expansions ("__call__", "__getattr__", etc)
|
|
|
|
|
| |
to ShibokenGenerator to retrieve a list of implicit constructors for the
given type
|
|
|
|
| |
This reverts commit 0953187f7b13b8ca410c8db8fa856154cc6729a8.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* %SELF, replaced by the variable name for the Python instance
of a class method
* %CPPOBJ, replaced by the pointer to the C++ object for the
Python instance associated with the method where it appears
the 'cpythonWrapperCPtr(const AbstractMetaClass*, QString)' method
was moved from CppGenerator to ShibokenGenerator to be available
for the type system variable replacement method;
the test bindings for the libsample's SimpleFile class was updated
to use the new type system variables
|
|
|
|
| |
of the type, and this instance must be freed after use.
|
|
|
|
|
|
| |
- Fix function names containing "::" (such as QTextCodec);
- Fix wrong method naming while generating CPython code;
- Fix inner classes code generation.
|
|
|
|
| |
a pointer to AbstractMetaFunction instead of a AbstractMetaArgumentList
|
| |
|
|
|
|
|
| |
- Added a warning when no python operators can be found to a C++ operator.
- Added mapping from C++ operator[] to Python __getitem__
|
| |
|
|
|
|
|
|
|
| |
private destructors into account
- Removed ShibokenGenerator::canCreateWrapperFor(...) method
- Minor improvements to ShibokenGenerator documentation
- Expanded PrivateDtor case and added related unit test
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
at each possible call, instead of receiving the return value in the C++
type and converting it later. Having the result value as a PyObject
pointer avoids the problem of declaring the return value variable with
a class that do not have a simple constructor.
Example: "Foo resultValue;" is a problem when the only constructor for
"Foo" is "Foo(int)".
The above described problem is made worse with the addition of OddBool
and OddBoolUser cases to the sample library. OddBool is registered as a
primitive (and convertible) type, registered this way it is only
available as a TypeEntry and a suitable constructor cannot possibly
be found. This is different from Value and Object types for they
become AbstractMetaClass objects and all constructor signatures
can be queried.
|
|
|
|
| |
Reviewed by Marcelo Lira <marcelo.lira@openbossa.org>
|
|
|
|
| |
to ShibokenGenerator::translateTypeForWrapperMethod
|
|
|