|
Boost-Build : |
Subject: Re: [Boost-build] Access violation patch
From: Vladimir Prus (ghost_at_[hidden])
Date: 2011-11-22 06:21:51
[Adding list to CC]
On 21/11/11 19:31, Juraj Ivanèiæ wrote:
> I produced a patch which fixes access violation from my previous e-mail.
Thanks for the patch! Comitted in revision 75605.
- Volodya
> Index: build/toolset.py
> ===================================================================
> --- build/toolset.py (revision 75578)
> +++ build/toolset.py (working copy)
> @@ -117,8 +117,8 @@
> is specified, then the value of 'feature'
> will be added.
> """
> - caller = bjam.caller()[:-1]
> - if not '.' in rule_or_module and caller.startswith("Jamfile"):
> + caller = bjam.caller()
> + if not '.' in rule_or_module and caller and caller[:-1].startswith("Jamfile"):
> # Unqualified rule name, used inside Jamfile. Most likely used with
> # 'make' or 'notfile' rules. This prevents setting flags on the entire
> # Jamfile module (this will be considered as rule), but who cares?
> Index: engine/builtins.c
> ===================================================================
> --- engine/builtins.c (revision 75578)
> +++ engine/builtins.c (working copy)
> @@ -2140,9 +2140,9 @@
>
> PyObject * bjam_caller( PyObject * self, PyObject * args )
> {
> - PyObject *result = PyString_FromString(
> - frame_before_python_call->prev->module->name);
> - return result;
> + if ( !frame_before_python_call )
> + Py_RETURN_NONE;
> + return PyString_FromString(frame_before_python_call->prev->module->name);
> }
>
> #endif /* #ifdef HAVE_PYTHON */
> Index: engine/compile.c
> ===================================================================
> --- engine/compile.c (revision 75578)
> +++ engine/compile.c (working copy)
> @@ -865,6 +865,7 @@
>
> frame_before_python_call = frame;
> py_result = PyObject_Call( r->python_function, arguments, kw );
> + frame_before_python_call = NULL;
> Py_DECREF(arguments);
> Py_XDECREF(kw);
> if ( py_result != NULL )
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk