Skip to content

Files

Latest commit

 

History

History
50 lines (40 loc) · 813 Bytes

close_sinks.md

File metadata and controls

50 lines (40 loc) · 813 Bytes

Pattern: Missing use of close for dart.core.Sink

Issue: -

Description

Closing instances of dart.core.Sink prevents memory leaks and unexpected behavior.

Example of incorrect code:

class A {
 IOSink _sinkA;
 void init(filename) {
  _sinkA = new File(filename).openWrite(); // LINT
 }
}

Example of incorrect code:

void someFunction() {
 IOSink _sinkF; // LINT
}

Example of correct code:

class B {
 IOSink _sinkB;
 void init(filename) {
  _sinkB = new File(filename).openWrite(); // OK
 }

 void dispose(filename) {
  _sinkB.close();
 }
}

Example of correct code:

void someFunctionOK() {
 IOSink _sinkFOK; // OK
 _sinkFOK.close();
}

Further Reading