From 1d9aff0c48d22b9052164acbed5e736459cabd18 Mon Sep 17 00:00:00 2001 From: rdb Date: Sat, 19 Sep 2015 14:50:59 +0200 Subject: [PATCH] Fix wrapper for operator bool of TypeHandle --- dtool/src/interrogate/functionRemap.cxx | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/dtool/src/interrogate/functionRemap.cxx b/dtool/src/interrogate/functionRemap.cxx index 2bf2fb06da..1b7315f1eb 100644 --- a/dtool/src/interrogate/functionRemap.cxx +++ b/dtool/src/interrogate/functionRemap.cxx @@ -146,20 +146,17 @@ call_function(ostream &out, int indent_level, bool convert_result, } else if (_type == T_typecast_method) { // A typecast method can be invoked implicitly. - string cast_expr = - "(" + _return_type->get_orig_type()->get_local_name(&parser) + ")"; + ostringstream cast_expr; + cast_expr << "(" + << _return_type->get_orig_type()->get_local_name(&parser) << ")"; - if (TypeManager::is_handle(_cpptype)) { - cast_expr += "(" + container + ")"; - } else { - cast_expr += "(*" + container + ")"; - } + _parameters[0]._remap->pass_parameter(cast_expr, container); if (!convert_result) { - return_expr = cast_expr; + return_expr = cast_expr.str(); } else { string new_str = - _return_type->prepare_return_expr(out, indent_level, cast_expr); + _return_type->prepare_return_expr(out, indent_level, cast_expr.str()); return_expr = _return_type->get_return_expr(new_str); }