pdr: optimize record handle computation

Instead of noting the last used record handle, fetch this from the last
PDR record. This works because record handles are assigned by increments
of 1.

Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
Change-Id: I40fe411e1b966fad28cab6e855648b135a946678
diff --git a/libpldm/pdr.c b/libpldm/pdr.c
index e0cd527..bfbf566 100644
--- a/libpldm/pdr.c
+++ b/libpldm/pdr.c
@@ -15,7 +15,6 @@
 typedef struct pldm_pdr {
 	uint32_t record_count;
 	uint32_t size;
-	uint32_t last_used_record_handle;
 	pldm_pdr_record *first;
 	pldm_pdr_record *last;
 } pldm_pdr;
@@ -46,16 +45,17 @@
 		repo->last = record;
 	}
 	repo->size += record->size;
-	repo->last_used_record_handle = record->record_handle;
 	++repo->record_count;
 }
 
 static inline uint32_t get_new_record_handle(const pldm_pdr *repo)
 {
 	assert(repo != NULL);
-	assert(repo->last_used_record_handle != UINT32_MAX);
+	uint32_t last_used_hdl =
+	    repo->last != NULL ? repo->last->record_handle : 0;
+	assert(last_used_hdl != UINT32_MAX);
 
-	return repo->last_used_record_handle + 1;
+	return last_used_hdl + 1;
 }
 
 static pldm_pdr_record *make_new_record(const pldm_pdr *repo,
@@ -111,7 +111,6 @@
 	assert(repo != NULL);
 	repo->record_count = 0;
 	repo->size = 0;
-	repo->last_used_record_handle = 0;
 	repo->first = NULL;
 	repo->last = NULL;