Browse Source

fix, rings must have at least three elements

Alexander Rose 5 years ago
parent
commit
6d384166d5
1 changed files with 5 additions and 1 deletions
  1. 5 1
      src/mol-model/structure/structure/unit/rings/compute.ts

+ 5 - 1
src/mol-model/structure/structure/unit/rings/compute.ts

@@ -142,7 +142,11 @@ function addRing(state: State, a: number, b: number) {
         if (current < 0) break;
     }
 
-    const ring = new Int32Array(leftOffset + rightOffset);
+    const len = leftOffset + rightOffset
+    // rings must have at least three elements
+    if (len < 3) return
+
+    const ring = new Int32Array(len);
     let ringOffset = 0;
     for (let t = 0; t < leftOffset; t++) ring[ringOffset++] = state.startVertex + left[t];
     for (let t = rightOffset - 1; t >= 0; t--) ring[ringOffset++] = state.startVertex + right[t];