[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] ios: re-use ID if possible
From: |
Mohammad-Reza Nabipoor |
Subject: |
[PATCH] ios: re-use ID if possible |
Date: |
Sun, 22 Jan 2023 15:24:25 +0100 |
2023-01-22 Mohammad-Reza Nabipoor <mnabipoor@gnu.org>
* libpoke/ios.c (ios_close): Re-use the IOS ID if possible.
* testsuite/poke.pkl/ios-close-1.pk: New test.
* testsuite/poke.pkl/ios-close-2.pk: Likewise.
* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
---
ChangeLog | 7 +++++++
libpoke/ios.c | 4 ++++
testsuite/Makefile.am | 2 ++
testsuite/poke.pkl/ios-close-1.pk | 14 ++++++++++++++
testsuite/poke.pkl/ios-close-2.pk | 10 ++++++++++
5 files changed, 37 insertions(+)
create mode 100644 testsuite/poke.pkl/ios-close-1.pk
create mode 100644 testsuite/poke.pkl/ios-close-2.pk
diff --git a/ChangeLog b/ChangeLog
index 58f0df2c..dab1e05d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2023-01-22 Mohammad-Reza Nabipoor <mnabipoor@gnu.org>
+
+ * libpoke/ios.c (ios_close): Re-use the IOS ID if possible.
+ * testsuite/poke.pkl/ios-close-1.pk: New test.
+ * testsuite/poke.pkl/ios-close-2.pk: Likewise.
+ * testsuite/Makefile.am (EXTRA_DIST): Add new tests.
+
2023-01-22 Jose E. Marchesi <jemarch@gnu.org>
* testsuite/poke.pkl/acons-20.pk: New test.
diff --git a/libpoke/ios.c b/libpoke/ios.c
index 8e10d3f8..078f8128 100644
--- a/libpoke/ios.c
+++ b/libpoke/ios.c
@@ -241,6 +241,10 @@ ios_close (ios io)
if (io == cur_io)
cur_io = io_list;
+ /* Re-use the ID if this IOS was the most-recently opened IOS. */
+ if (ios_next_id == io->id + 1)
+ --ios_next_id;
+
free (io);
return IOD_ERROR_TO_IOS_ERROR (ret);
diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am
index f32046cd..0abbb446 100644
--- a/testsuite/Makefile.am
+++ b/testsuite/Makefile.am
@@ -1665,6 +1665,8 @@ EXTRA_DIST = \
poke.pkl/iolist-2.pk \
poke.pkl/iolist-3.pk \
poke.pkl/iolist-4.pk \
+ poke.pkl/ios-close-1.pk \
+ poke.pkl/ios-close-2.pk \
poke.pkl/iosetbias-1.pk \
poke.pkl/iosetbias-2.pk \
poke.pkl/iosetbias-3.pk \
diff --git a/testsuite/poke.pkl/ios-close-1.pk
b/testsuite/poke.pkl/ios-close-1.pk
new file mode 100644
index 00000000..4682eae0
--- /dev/null
+++ b/testsuite/poke.pkl/ios-close-1.pk
@@ -0,0 +1,14 @@
+/* { dg-do run } */
+
+/* { dg-command { .set obase 10 } } */
+/* { dg-command { open ("*1*") } } */
+/* { dg-output "0\n" } */
+/* { dg-command { open ("*2*") } } */
+/* { dg-output "1\n" } */
+/* { dg-command { close (1) } } */
+/* { dg-command { open ("*3*") } } */
+/* { dg-output "1\n" } */
+/* { dg-command { close (1) } } */
+/* { dg-command { close (0) } } */
+/* { dg-command { open ("*3*") } } */
+/* { dg-output "0\n" } */
diff --git a/testsuite/poke.pkl/ios-close-2.pk
b/testsuite/poke.pkl/ios-close-2.pk
new file mode 100644
index 00000000..24ff2392
--- /dev/null
+++ b/testsuite/poke.pkl/ios-close-2.pk
@@ -0,0 +1,10 @@
+/* { dg-do run } */
+
+/* { dg-command { .set obase 10 } } */
+/* { dg-command { open ("*1*") } } */
+/* { dg-output "0\n" } */
+/* { dg-command { open ("*2*") } } */
+/* { dg-output "1\n" } */
+/* { dg-command { close (0) } } */
+/* { dg-command { open ("*3*") } } */
+/* { dg-output "2\n" } */
--
2.39.1
- [PATCH] ios: re-use ID if possible,
Mohammad-Reza Nabipoor <=