From d431786fca6213f4b98555deed9ea6b58677ae20 Mon Sep 17 00:00:00 2001 From: Benny Baumann Date: Fri, 13 Nov 2020 21:34:21 +0100 Subject: [PATCH] Split data array for file lock information into separate fields --- ProcessLocksScreen.c | 14 ++++++++------ ProcessLocksScreen.h | 5 ++++- linux/Platform.c | 8 ++++---- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/ProcessLocksScreen.c b/ProcessLocksScreen.c index 480afccb..67743c94 100644 --- a/ProcessLocksScreen.c +++ b/ProcessLocksScreen.c @@ -50,8 +50,10 @@ static void ProcessLocksScreen_draw(InfoScreen* this) { } static inline void FileLocks_Data_clear(FileLocks_Data* data) { - for (size_t i = 0; i < ARRAYSIZE(data->data); i++) - free(data->data[i]); + free(data->locktype); + free(data->exclusive); + free(data->readwrite); + free(data->filename); } static void ProcessLocksScreen_scan(InfoScreen* this) { @@ -75,18 +77,18 @@ static void ProcessLocksScreen_scan(InfoScreen* this) { if (ULLONG_MAX == data->end) { xSnprintf(entry, sizeof(entry), "%10d %-10s %-10s %-10s %02x:%02x:%020"PRIu64" %20"PRIu64" %20s %s", data->id, - data->data[0], data->data[1], data->data[2], + data->locktype, data->exclusive, data->readwrite, data->dev[0], data->dev[1], data->inode, data->start, "", - data->data[3] ? data->data[3] : "" + data->filename ? data->filename : "" ); } else { xSnprintf(entry, sizeof(entry), "%10d %-10s %-10s %-10s %02x:%02x:%020"PRIu64" %20"PRIu64" %20"PRIu64" %s", data->id, - data->data[0], data->data[1], data->data[2], + data->locktype, data->exclusive, data->readwrite, data->dev[0], data->dev[1], data->inode, data->start, data->end, - data->data[3] ? data->data[3] : "" + data->filename ? data->filename : "" ); } diff --git a/ProcessLocksScreen.h b/ProcessLocksScreen.h index 5da53adc..daffd629 100644 --- a/ProcessLocksScreen.h +++ b/ProcessLocksScreen.h @@ -18,7 +18,10 @@ typedef struct ProcessLocksScreen_ { } ProcessLocksScreen; typedef struct FileLocks_Data_ { - char* data[4]; + char* locktype; + char* exclusive; + char* readwrite; + char* filename; int id; unsigned int dev[2]; uint64_t inode; diff --git a/linux/Platform.c b/linux/Platform.c index 7e51bf61..7b859c3a 100644 --- a/linux/Platform.c +++ b/linux/Platform.c @@ -401,10 +401,10 @@ FileLocks_ProcessData* Platform_getProcessLocks(pid_t pid) { FileLocks_LockData* ldata = xCalloc(1, sizeof(FileLocks_LockData)); FileLocks_Data* data = &ldata->data; data->id = lock_id; - data->data[0] = xStrdup(lock_type); - data->data[1] = xStrdup(lock_excl); - data->data[2] = xStrdup(lock_rw); - data->data[3] = Platform_getInodeFilename(lock_pid, lock_inode); + data->locktype = xStrdup(lock_type); + data->exclusive = xStrdup(lock_excl); + data->readwrite = xStrdup(lock_rw); + data->filename = Platform_getInodeFilename(lock_pid, lock_inode); data->dev[0] = lock_dev[0]; data->dev[1] = lock_dev[1]; data->inode = lock_inode;