docs: refine queueing code comment
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Tue, 28 May 2024 20:58:18 +0000 (22:58 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Tue, 28 May 2024 20:58:18 +0000 (22:58 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
src/fixed-priority-queue.ts
src/priority-queue.ts

index 2d851ca4bfeea79def5af02e645ee017e802ed2b..a248aa7e2b3e90541fa8c0f5f03abc00c2ecaa18 100644 (file)
@@ -65,6 +65,7 @@ export class FixedPriorityQueue<T> {
    * @param data - Data to enqueue.
    * @param priority - Priority of the data. Lower values have higher priority.
    * @returns The new size of the priority queue.
+   * @throws If the fixed priority queue is full.
    */
   public enqueue (data: T, priority?: number): number {
     if (this.full()) {
@@ -74,8 +75,10 @@ export class FixedPriorityQueue<T> {
     let index = this.start
     let inserted = false
     for (let i = 0; i < this.size; i++) {
-      if (this.nodeArray[index]?.priority > priority) {
+      if (this.nodeArray[index].priority > priority) {
         this.nodeArray.splice(index, 0, { data, priority })
+        this.nodeArray.length !== this.capacity &&
+          (this.nodeArray.length = this.capacity)
         inserted = true
         break
       }
@@ -84,8 +87,6 @@ export class FixedPriorityQueue<T> {
         index = 0
       }
     }
-    this.nodeArray.length !== this.capacity &&
-      (this.nodeArray.length = this.capacity)
     if (!inserted) {
       let index = this.start + this.size
       if (index >= this.capacity) {
index ce96b4e8b9480df9a134c72cd340122903b04db5..0f75e52b2e7368ca1d7932283972f70f8537a62f 100644 (file)
@@ -27,6 +27,7 @@ export class PriorityQueue<T> {
   private head!: PriorityQueueNode<T>
   private tail!: PriorityQueueNode<T>
   private readonly bucketSize: number
+  /** The priority queue maximum size. */
   public maxSize!: number
 
   /**
@@ -49,7 +50,7 @@ export class PriorityQueue<T> {
   }
 
   /**
-   * The size of the priority queue.
+   * The priority queue size.
    */
   public get size (): number {
     let node: PriorityQueueNode<T> | undefined = this.tail