For Python extensions, set __file__ before executing the module

Previously __file__ was set after executing the module. This meant,
however that it was not available during execution.
This patch moves setting __file__ before the execution.

As __file__ is a string (and not bytes), we remove the encoding.

Change-Id: I63fe34b6f5d30f53aab16627d413c87b9de81992
Reviewed-on: https://gerrit.libreoffice.org/70048
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
This commit is contained in:
Thomas Viehmann
2019-04-01 09:34:20 +02:00
committed by Samuel Mehrbrodt
parent 671912cc94
commit dbbf20a4b4

View File

@@ -100,8 +100,8 @@ class Loader( XImplementationLoader, XServiceInfo, unohelper.Base ):
# compile and execute the module
codeobject = compile( src, encfile(filename), "exec" )
mod.__file__ = filename
exec(codeobject, mod.__dict__)
mod.__file__ = encfile(filename)
g_loadedComponents[url] = mod
return mod
elif "vnd.openoffice.pymodule" == protocol: