70
70
import com .oracle .graal .python .annotations .ArgumentClinic ;
71
71
import com .oracle .graal .python .builtins .Builtin ;
72
72
import com .oracle .graal .python .builtins .CoreFunctions ;
73
+ import com .oracle .graal .python .builtins .modules .io .BufferedIONodes .CheckIsClosedNode ;
74
+ import com .oracle .graal .python .builtins .modules .io .BufferedIONodes .EnterBufferedNode ;
75
+ import com .oracle .graal .python .builtins .modules .io .BufferedIONodes .FlushAndRewindUnlockedNode ;
76
+ import com .oracle .graal .python .builtins .modules .io .BufferedIONodesFactory .CheckIsClosedNodeGen ;
73
77
import com .oracle .graal .python .builtins .objects .PNone ;
74
78
import com .oracle .graal .python .builtins .objects .buffer .PythonBufferAccessLibrary ;
75
79
import com .oracle .graal .python .builtins .objects .bytes .BytesNodes ;
@@ -251,10 +255,10 @@ Object readFast(VirtualFrame frame, PBuffered self, int size) {
251
255
*/
252
256
@ Specialization (guards = {"self.isOK()" , "size > 0" , "!isReadFast(self, size)" })
253
257
Object bufferedreaderReadGeneric (VirtualFrame frame , PBuffered self , int size ,
254
- @ Cached BufferedIONodes . EnterBufferedNode lock ,
258
+ @ Cached EnterBufferedNode lock ,
255
259
@ Cached RawReadNode rawReadNode ,
256
260
@ Cached FillBufferNode fillBufferNode ,
257
- @ Cached BufferedIONodes . FlushAndRewindUnlockedNode flushAndRewindUnlockedNode ) {
261
+ @ Cached FlushAndRewindUnlockedNode flushAndRewindUnlockedNode ) {
258
262
checkIsClosedNode .execute (frame , self );
259
263
try {
260
264
lock .enter (self );
@@ -337,7 +341,7 @@ reads, which could block indefinitely (e.g. on a socket).
337
341
338
342
return factory ().createBytes (res );
339
343
} finally {
340
- BufferedIONodes . EnterBufferedNode .leave (self );
344
+ EnterBufferedNode .leave (self );
341
345
}
342
346
}
343
347
@@ -348,8 +352,8 @@ reads, which could block indefinitely (e.g. on a socket).
348
352
*/
349
353
@ Specialization (guards = {"self.isOK()" , "isReadAll(size)" })
350
354
Object bufferedreaderReadAll (VirtualFrame frame , PBuffered self , @ SuppressWarnings ("unused" ) int size ,
351
- @ Cached BufferedIONodes . EnterBufferedNode lock ,
352
- @ Cached BufferedIONodes . FlushAndRewindUnlockedNode flushAndRewindUnlockedNode ,
355
+ @ Cached EnterBufferedNode lock ,
356
+ @ Cached FlushAndRewindUnlockedNode flushAndRewindUnlockedNode ,
353
357
@ Cached ("create(READALL)" ) LookupAttributeInMRONode readallAttr ,
354
358
@ Cached ConditionProfile hasReadallProfile ,
355
359
@ Cached CallUnaryMethodNode dispatchGetattribute ,
@@ -426,7 +430,7 @@ Object bufferedreaderReadAll(VirtualFrame frame, PBuffered self, @SuppressWarnin
426
430
}
427
431
}
428
432
} finally {
429
- BufferedIONodes . EnterBufferedNode .leave (self );
433
+ EnterBufferedNode .leave (self );
430
434
}
431
435
}
432
436
@@ -449,8 +453,8 @@ protected ArgumentClinicProvider getArgumentClinic() {
449
453
450
454
@ Specialization (guards = "self.isOK()" )
451
455
PBytes doit (VirtualFrame frame , PBuffered self , int size ,
452
- @ Cached BufferedIONodes . EnterBufferedNode lock ,
453
- @ Cached ("create(READ)" ) BufferedIONodes . CheckIsClosedNode checkIsClosedNode ,
456
+ @ Cached EnterBufferedNode lock ,
457
+ @ Cached ("create(READ)" ) CheckIsClosedNode checkIsClosedNode ,
454
458
@ Cached RawReadNode rawReadNode ) {
455
459
checkIsClosedNode .execute (frame , self );
456
460
int n = size ;
@@ -476,7 +480,7 @@ PBytes doit(VirtualFrame frame, PBuffered self, int size,
476
480
byte [] fill = rawReadNode .execute (frame , self , n );
477
481
return factory ().createBytes (fill == BLOCKED ? PythonUtils .EMPTY_BYTE_ARRAY : fill );
478
482
} finally {
479
- BufferedIONodes . EnterBufferedNode .leave (self );
483
+ EnterBufferedNode .leave (self );
480
484
}
481
485
}
482
486
}
@@ -486,16 +490,16 @@ PBytes doit(VirtualFrame frame, PBuffered self, int size,
486
490
@ GenerateNodeFactory
487
491
abstract static class ReadIntoNode extends PythonBinaryWithInitErrorClinicBuiltinNode {
488
492
489
- @ Child BufferedIONodes . CheckIsClosedNode checkIsClosedNode = BufferedIONodesFactory . CheckIsClosedNodeGen .create (READLINE );
493
+ @ Child private CheckIsClosedNode checkIsClosedNode = CheckIsClosedNodeGen .create (READLINE );
490
494
491
495
/**
492
496
* implementation of cpython/Modules/_io/bufferedio.c:_buffered_readinto_generic
493
497
*/
494
498
@ Specialization (guards = "self.isOK()" , limit = "3" )
495
499
Object bufferedReadintoGeneric (VirtualFrame frame , PBuffered self , Object buffer ,
496
500
@ CachedLibrary ("buffer" ) PythonBufferAccessLibrary bufferLib ,
497
- @ Cached BufferedIONodes . EnterBufferedNode lock ,
498
- @ Cached BufferedIONodes . FlushAndRewindUnlockedNode flushAndRewindUnlockedNode ,
501
+ @ Cached EnterBufferedNode lock ,
502
+ @ Cached FlushAndRewindUnlockedNode flushAndRewindUnlockedNode ,
499
503
@ Cached RawReadNode rawReadNode ,
500
504
@ Cached FillBufferNode fillBufferNode ) {
501
505
checkIsClosedNode .execute (frame , self );
@@ -571,7 +575,7 @@ Object bufferedReadintoGeneric(VirtualFrame frame, PBuffered self, Object buffer
571
575
572
576
return written ;
573
577
} finally {
574
- BufferedIONodes . EnterBufferedNode .leave (self );
578
+ EnterBufferedNode .leave (self );
575
579
bufferLib .release (buffer , frame , this );
576
580
}
577
581
}
@@ -610,8 +614,8 @@ abstract static class BufferedReadlineNode extends PNodeWithContext {
610
614
611
615
@ Specialization
612
616
static byte [] readline (VirtualFrame frame , PBuffered self , int size ,
613
- @ Cached BufferedIONodes . EnterBufferedNode lock ,
614
- @ Cached BufferedIONodes . FlushAndRewindUnlockedNode flushAndRewindUnlockedNode ,
617
+ @ Cached EnterBufferedNode lock ,
618
+ @ Cached FlushAndRewindUnlockedNode flushAndRewindUnlockedNode ,
615
619
@ Cached FillBufferNode fillBufferNode ,
616
620
@ Cached ConditionProfile notFound ,
617
621
@ Cached ConditionProfile reachedLimit ) {
@@ -683,7 +687,7 @@ static byte[] readline(VirtualFrame frame, PBuffered self, int size,
683
687
}
684
688
return toByteArray (chunks );
685
689
} finally {
686
- BufferedIONodes . EnterBufferedNode .leave (self );
690
+ EnterBufferedNode .leave (self );
687
691
}
688
692
}
689
693
}
@@ -700,7 +704,7 @@ protected ArgumentClinicProvider getArgumentClinic() {
700
704
701
705
@ Specialization (guards = "self.isOK()" )
702
706
PBytes doit (VirtualFrame frame , PBuffered self , int size ,
703
- @ Cached ("create(READLINE)" ) BufferedIONodes . CheckIsClosedNode checkIsClosedNode ,
707
+ @ Cached ("create(READLINE)" ) CheckIsClosedNode checkIsClosedNode ,
704
708
@ Cached BufferedReadlineNode readlineNode ) {
705
709
checkIsClosedNode .execute (frame , self );
706
710
byte [] res = readlineNode .execute (frame , self , size );
@@ -746,10 +750,10 @@ static byte[] bufferedreaderPeekUnlocked(VirtualFrame frame, PBuffered self,
746
750
747
751
@ Specialization (guards = "self.isOK()" )
748
752
Object doit (VirtualFrame frame , PBuffered self , @ SuppressWarnings ("unused" ) int size ,
749
- @ Cached BufferedIONodes . EnterBufferedNode lock ,
750
- @ Cached ("create(PEEK)" ) BufferedIONodes . CheckIsClosedNode checkIsClosedNode ,
753
+ @ Cached EnterBufferedNode lock ,
754
+ @ Cached ("create(PEEK)" ) CheckIsClosedNode checkIsClosedNode ,
751
755
@ Cached FillBufferNode fillBufferNode ,
752
- @ Cached BufferedIONodes . FlushAndRewindUnlockedNode flushAndRewindUnlockedNode ) {
756
+ @ Cached FlushAndRewindUnlockedNode flushAndRewindUnlockedNode ) {
753
757
checkIsClosedNode .execute (frame , self );
754
758
try {
755
759
lock .enter (self );
@@ -758,7 +762,7 @@ Object doit(VirtualFrame frame, PBuffered self, @SuppressWarnings("unused") int
758
762
}
759
763
return factory ().createBytes (bufferedreaderPeekUnlocked (frame , self , fillBufferNode ));
760
764
} finally {
761
- BufferedIONodes . EnterBufferedNode .leave (self );
765
+ EnterBufferedNode .leave (self );
762
766
}
763
767
}
764
768
}
@@ -770,7 +774,7 @@ abstract static class NextNode extends PythonUnaryWithInitErrorBuiltinNode {
770
774
771
775
@ Specialization (guards = "self.isOK()" )
772
776
PBytes doit (VirtualFrame frame , PBuffered self ,
773
- @ Cached ("create(READLINE)" ) BufferedIONodes . CheckIsClosedNode checkIsClosedNode ,
777
+ @ Cached ("create(READLINE)" ) CheckIsClosedNode checkIsClosedNode ,
774
778
@ Cached BufferedReadlineNode readlineNode ) {
775
779
checkIsClosedNode .execute (frame , self );
776
780
byte [] line = readlineNode .execute (frame , self , -1 );
0 commit comments