I am getting multiple errors on user login, like this:
user.login throws "warning: Parameter 2 to MODULE_NAME expected to be a reference, value given in module.inc on line 483."
Tracked it down to the user_services.inc file: it uses module_invoke_all('user','login', NULL, $user) which is incorrect, because call_user_func_array() doesn't properly handle pass by reference with PHP5.3.
The solution is to replace the two module_invoke_all() functions in the user_services.inc with:
user_module_invoke('login', $array = array(), $user);
I'll post a patch when I get a chance, but wanted to get this out here to save others tearing out their hair.
Comments
Comment #1
Renee S commentedEr, sorry, the user_module_invoke() replacements should name what they're doing, ie
user_module_invoke('login... anduser_module_invoke('logout=)Comment #2
gddI would love to get PHP 5.3 patches but I don't currently have an environment to test this stuff on so I havent been dealing with it. So please pass them on. If we can get a confirment working version for PHP 5.3 I think that would be worth rolling a new release.
Comment #3
Renee S commentedPatch attached.
Comment #5
Renee S commentedmutter mutter eclipse mutter
Comment #6
marcingy commentedI really really don't like this - drupal doesn't do this anywhere I'm aware of in core.
For readability it should be
Comment #7
kylebrowning commentedSet to needs review for patch testing and chose marcingy's way of doing things.
Comment #8
kylebrowning commentedComment #9
gateway69 commentedthe $array = array(), makes it work with PHP 5.3