Is there no need to free converted_val if it returned IS_DOUBLE?