From 9e501cbbcde7b6624ec03372452e915967e84064 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Sat, 25 Sep 2021 00:38:03 +0000 Subject: [PATCH] Cache multi-line sed replacements across methods to improve runtime --- genbindings.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/genbindings.sh b/genbindings.sh index e6ffd8b..f74b2ac 100755 --- a/genbindings.sh +++ b/genbindings.sh @@ -230,9 +230,12 @@ while read LINE; do # We'll print this at the end ;; "XXX"*) - STRUCT_NAME="$(echo "$LINE" | awk '{ print $2 }')" + NEW_STRUCT_NAME="$(echo "$LINE" | awk '{ print $2 }')" + if [ "$NEW_STRUCT_NAME" != "$STRUCT_NAME" ]; then + STRUCT_CONTENTS="$(cat include/lightning.h | sed -n -e "/struct LDK$NEW_STRUCT_NAME/{:s" -e "/\} LDK$NEW_STRUCT_NAME;/!{N" -e "b s" -e "}" -e p -e "}")" + fi + STRUCT_NAME="$NEW_STRUCT_NAME" METHOD_NAME="$(echo "$LINE" | awk '{ print $3 }')" - STRUCT_CONTENTS="$(cat include/lightning.h | sed -n -e "/struct LDK$STRUCT_NAME/{:s" -e "/\} LDK$STRUCT_NAME;/!{N" -e "b s" -e "}" -e p -e "}")" METHOD="$(echo "$STRUCT_CONTENTS" | grep "(\*$METHOD_NAME)")" if [ "$METHOD" = "" ]; then echo "Unable to find method declaration for $LINE" -- 2.30.2