Skip to content

Commit

Permalink
Updates bin/trace script to correctly wrap H5TRACE macros near clang-…
Browse files Browse the repository at this point in the history
…format column limit (HDFGroup#719)

* Removes clang-format comments from H5O.c call

* Fixes bin/trace to correctly wrap lines near the clang-format limit

* Removed unused variable from bin/trace
  • Loading branch information
derobins committed Jun 4, 2021
1 parent 3d3218d commit 282e5da
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 12 deletions.
38 changes: 31 additions & 7 deletions bin/trace
Original file line number Diff line number Diff line change
Expand Up @@ -352,10 +352,32 @@ sub rewrite_func ($$$$$) {
$argtrace = "H5ARG_TRACE" . scalar(@arg_str) . "(FUNC, \"";
$trace .= join("", @arg_str) . "\"";
$argtrace .= join("", @arg_str) . "\"";
my $len = 4 + length $trace; # Add 4, for indenting the line
for (@arg_name) {
# Wrap lines that will be longer than the limit, after ');' is added
if ($len + length >= ($max_trace_macro_line_len - 2)) {

# Add 4 for indenting the line
my $len = 4 + length($trace);

for my $i (0 .. $#arg_name) {
# Handle wrapping

# Be VERY careful here! clang-format and this script MUST agree
# on which lines get wrapped or there will be churn as each tries
# to undo the other's output.
#
# TWO cases must be handled:
# 1) The argument is that last one and ');' will be appended
# 2) The argument is NOT the last one and ',' will be appended
#
# NB: clang-format does NOT consider terminal newlines when
# counting columns for the ColumnLimit
#
# The extra '2' added after $len includes the ', ' that would be
# added BEFORE the argument.
#
my $adjust = ($i + 1 == scalar(@arg_str)) ? 2 : 1;
my $len_if_added = $len + 2 + length($arg_name[$i]) + $adjust;

# Wrap lines that will be longer than the limit
if ($len_if_added > $max_trace_macro_line_len) {
# Wrap line, with indention
$trace .= ",\n ";
$len = 13; # Set to 13, for indention
Expand All @@ -371,9 +393,11 @@ sub rewrite_func ($$$$$) {
}

# Append argument
$trace .= "$_";
$argtrace .= ", $_";
$len += length; # Add length of appended argument name
$trace .= "$arg_name[$i]";
$argtrace .= ", $arg_name[$i]";

# Add length of appended argument name
$len += length($arg_name[$i]);
}

# Append final ');' for macro
Expand Down
9 changes: 4 additions & 5 deletions src/H5O.c
Original file line number Diff line number Diff line change
Expand Up @@ -1183,14 +1183,13 @@ H5Oget_info_by_name_async(const char *app_file, const char *app_func, unsigned a
hid_t es_id)
{
H5VL_object_t *vol_obj = NULL; /* Object for loc_id */
void * token = NULL; /* Request token for async operation */
void ** token_ptr = H5_REQUEST_NULL; /* Pointer to request token for async operation */
void * token = NULL; /* Request token for async operation */
void ** token_ptr = H5_REQUEST_NULL; /* Pointer to request token for async operation */
herr_t ret_value = SUCCEED; /* Return value */

FUNC_ENTER_API(FAIL)
/* clang-format off */
H5TRACE9("e", "*s*sIui*sxIuii", app_file, app_func, app_line, loc_id, name, oinfo, fields, lapl_id, es_id);
/* clang-format on */
H5TRACE9("e", "*s*sIui*sxIuii", app_file, app_func, app_line, loc_id, name, oinfo, fields, lapl_id,
es_id);

/* Set up request token pointer for asynchronous operation */
if (H5ES_NONE != es_id)
Expand Down

0 comments on commit 282e5da

Please sign in to comment.