Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ public class ThrowableImpl implements Serializable {

public final synchronized void addSuppressed(java.lang.Throwable exception) { }

public synchronized java.lang.Throwable fillInStackTrace() {
return Engine.makeSymbolic(java.lang.Throwable.class);
public synchronized ThrowableImpl fillInStackTrace() {
return this;
}

public StackTraceElement[] getStackTrace() {
Expand Down
18 changes: 18 additions & 0 deletions approximations/src/main/java/runtime/LibSLRuntime.java
Original file line number Diff line number Diff line change
Expand Up @@ -1335,6 +1335,8 @@ public HashMapContainer() {
public void merge(Map.Container<K, V> container) {
Engine.assume(container instanceof HashMapContainer);
HashMapContainer<K, V> other = (HashMapContainer<K, V>) container;
Engine.assume(map != null);
Engine.assume(other.map != null);
map.merge(other.map);
}

Expand All @@ -1346,37 +1348,44 @@ public Map.Container<K, V> getCleanInstance() {
@Override
public Map.Container<K, V> duplicate() {
final HashMapContainer<K, V> obj = new HashMapContainer<>();
Engine.assume(map != null);
obj.map.merge(this.map);
return obj;
}

@Override
public boolean containsKey(K key) {
Engine.assume(map != null);
return map.containsKey(key);
}

@Override
public K anyKey() {
Engine.assume(map != null);
return map.anyKey();
}

@Override
public V get(K key) {
Engine.assume(map != null);
return map.get(key);
}

@Override
public void set(K key, V value) {
Engine.assume(map != null);
map.set(key, value);
}

@Override
public void remove(K key) {
Engine.assume(map != null);
map.remove(key);
}

@Override
public int size() {
Engine.assume(map != null);
return map.size();
}
}
Expand All @@ -1394,6 +1403,8 @@ public IdentityMapContainer() {
public void merge(Map.Container<K, V> container) {
Engine.assume(container instanceof IdentityMapContainer);
IdentityMapContainer<K, V> other = (IdentityMapContainer<K, V>) container;
Engine.assume(map != null);
Engine.assume(other.map != null);
map.merge(other.map);
}

Expand All @@ -1405,37 +1416,44 @@ public Map.Container<K, V> getCleanInstance() {
@Override
public Map.Container<K, V> duplicate() {
final IdentityMapContainer<K, V> obj = new IdentityMapContainer<>();
Engine.assume(map != null);
obj.map.merge(this.map);
return obj;
}

@Override
public boolean containsKey(K key) {
Engine.assume(map != null);
return map.containsKey(key);
}

@Override
public K anyKey() {
Engine.assume(map != null);
return map.anyKey();
}

@Override
public V get(K key) {
Engine.assume(map != null);
return map.get(key);
}

@Override
public void set(K key, V value) {
Engine.assume(map != null);
map.set(key, value);
}

@Override
public void remove(K key) {
Engine.assume(map != null);
map.remove(key);
}

@Override
public int size() {
Engine.assume(map != null);
return map.size();
}
}
Expand Down