From 1f8db95f0f02e1115318dc2352efc9d018e9f2f0 Mon Sep 17 00:00:00 2001
From: limengning
Date: Fri, 15 Aug 2025 14:36:48 +0800
Subject: [PATCH] Fix memory leak issue.
---
cfgrib/messages.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/cfgrib/messages.py b/cfgrib/messages.py
index 17a4e752..df028235 100644
--- a/cfgrib/messages.py
+++ b/cfgrib/messages.py
@@ -98,8 +98,10 @@ def from_file(cls, file, offset=None, **kwargs):
else:
# MULTI-FIELD is enabled only when accessing additional fields
with multi_enabled(file):
- for _ in range(field_in_message + 1):
+ for i in range(field_in_message + 1):
codes_id = eccodes.codes_grib_new_from_file(file)
+ if codes_id is not None and i < field_in_message:
+ eccodes.codes_release(codes_id)
if codes_id is None:
raise EOFError("End of file: %r" % file)