{
        unsigned int j;
        int bulk_read_stat;
+       FP_FLASH_WRITE_STATUS writef =
+               ad->fpFlashWriteWithStatusCheck;
 
        for (i = 0; i < ad->uiSectorSize; i += MAX_RW_SIZE) {
                bulk_read_stat = BeceemFlashBulkRead(ad,
 
                if (ad->ulFlashWriteSize == 1) {
                        for (j = 0; j < 16; j++) {
-                               if ((read_bk[j] != tmpbuff[i+j]) &&
-                                   (STATUS_SUCCESS != (*ad->fpFlashWriteWithStatusCheck)(ad, partoff + i + j, &tmpbuff[i+j]))) {
+                               if ((read_bk[j] != tmpbuff[i + j]) &&
+                                   (STATUS_SUCCESS != (*writef)(ad, partoff + i + j, &tmpbuff[i + j]))) {
                                        return STATUS_FAILURE;
                                }
                        }
                } else {
                        if ((memcmp(read_bk, &tmpbuff[i], MAX_RW_SIZE)) &&
-                           ((STATUS_SUCCESS != (*ad->fpFlashWriteWithStatusCheck)(ad, partoff + i, &tmpbuff[i])))) {
+                           (STATUS_SUCCESS != (*writef)(ad, partoff + i, &tmpbuff[i]))) {
                                return STATUS_FAILURE;
                        }
                }