summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2009-11-21 21:29:12 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2009-11-23 11:48:03 -0300
commit8560b8437fdc84f16221cabb37397f092f52e087 (patch)
treee9b4cf66ced0df729f91066723cccf7994bbeb61 /doc
parent2b8bc79e05b3e6800f6c31e4d66991c288029710 (diff)
downloadshiboken-8560b8437fdc84f16221cabb37397f092f52e087.tar.gz
shiboken-8560b8437fdc84f16221cabb37397f092f52e087.tar.xz
shiboken-8560b8437fdc84f16221cabb37397f092f52e087.zip
The code injections in the native/beginning position come after the
C++ arguments conversion to a Python argument tuple. The documentation was updated with this information. The virtual method writer was also fixed to not convert removed arguments.
Diffstat (limited to 'doc')
-rw-r--r--doc/codeinjectionsemantics.rst12
1 files changed, 8 insertions, 4 deletions
diff --git a/doc/codeinjectionsemantics.rst b/doc/codeinjectionsemantics.rst
index e1891188..c0d6fa2d 100644
--- a/doc/codeinjectionsemantics.rst
+++ b/doc/codeinjectionsemantics.rst
@@ -66,9 +66,10 @@ The following table describes the semantics of ``inject-code`` tag as used on
| | | |code here will be executed after all the wrapped class |
| | | |components have been initialized. |
+---------------+------+---------+--------------------------------------------------------------+
- |modify-function|native|beginning|Code here is put on the beginning of a virtual method |
- | | | |override on the C++ wrapper class (the one responsible for |
- | | | |passing C++ calls to Python overrides, if there is any). |
+ |modify-function|native|beginning|Code here is put on the virtual method override of a C++ |
+ | | | |wrapper class (the one responsible for passing C++ calls to a |
+ | | | |Python override, if there is any), right after the C++ |
+ | | | |arguments have been converted but before the Python call. |
| | +---------+--------------------------------------------------------------+
| | |end |This code injection goes to the end of a virtual method |
| | | |override on the C++ wrapper class, right before the return |
@@ -199,8 +200,11 @@ class is polymorphic.
if (!method)
return this->InjectCode::virtualMethod(arg);
+ (... here C++ arguments are converted to Python ...)
+
// INJECT-CODE: <modify-function><inject-code class="native" position="beginning">
- // Uses: pre method call custom code.
+ // Uses: pre method call custom code, modify the argument before the
+ // Python call.
(... Python method call goes in here ...)