Damien George
6abede2ca9
py/stream: Introduce and use efficient mp_get_stream to access stream_p.
...
The existing mp_get_stream_raise() helper does explicit checks that the
input object is a real pointer object, has a non-NULL stream protocol, and
has the desired stream C method (read/write/ioctl). In most cases it is
not necessary to do these checks because it is guaranteed that the input
object has the stream protocol and desired C methods. For example, native
objects that use the stream wrappers (eg mp_stream_readinto_obj) in their
locals dict always have the stream protocol (or else they shouldn't have
these wrappers in their locals dict).
This patch introduces an efficient mp_get_stream() which doesn't do any
checks and just extracts the stream protocol struct. This should be used
in all cases where the argument object is known to be a stream. The
existing mp_get_stream_raise() should be used primarily to verify that an
object does have the correct stream protocol methods.
All uses of mp_get_stream_raise() in py/stream.c have been converted to use
mp_get_stream() because the argument is guaranteed to be a proper stream
object.
This patch improves efficiency of stream operations and reduces code size.
2018-06-18 12:35:56 +10:00
..
2017-10-19 18:57:26 +11:00
2018-02-24 23:10:20 +11:00
2017-11-15 11:46:49 +11:00
2017-12-08 19:07:00 +11:00
2016-12-09 22:50:58 +11:00
2018-02-24 23:10:20 +11:00
2018-04-10 15:06:47 +10:00
2018-02-24 23:10:20 +11:00
2017-11-15 11:46:49 +11:00
2018-02-24 23:10:20 +11:00
2018-02-24 23:10:20 +11:00
2016-12-09 22:50:58 +11:00
2017-11-15 11:46:49 +11:00
2017-10-05 10:49:44 +11:00
2017-10-10 10:37:38 +11:00
2017-10-04 12:37:50 +11:00
2017-11-16 13:17:51 +11:00
2017-08-17 16:19:35 +10:00
2017-09-12 16:03:52 +10:00
2017-10-04 12:37:50 +11:00
2018-05-02 16:50:28 +10:00
2018-02-20 18:00:44 +11:00
2018-05-23 00:35:16 +10:00
2017-07-31 18:35:40 +10:00
2018-05-23 00:35:16 +10:00
2018-05-23 00:35:16 +10:00
2018-05-23 00:22:47 +10:00
2018-02-14 18:41:17 +11:00
2018-02-14 18:41:17 +11:00
2017-07-31 18:35:40 +10:00
2016-12-09 21:23:17 +11:00
2018-04-10 15:06:47 +10:00
2018-05-23 00:35:16 +10:00
2018-04-10 15:06:47 +10:00
2018-04-10 15:06:47 +10:00
2018-05-04 20:39:16 +10:00
2018-04-10 15:06:47 +10:00
2018-03-01 17:00:02 +11:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2018-06-12 11:55:29 +10:00
2018-06-12 11:55:29 +10:00
2017-07-31 18:35:40 +10:00
2018-06-12 12:17:43 +10:00
2017-07-31 18:35:40 +10:00
2018-05-10 23:14:23 +10:00
2018-03-16 23:54:06 +11:00
2018-02-22 12:48:51 +11:00
2017-12-20 16:55:42 +11:00
2017-12-19 13:37:15 +11:00
2018-05-18 23:31:00 +10:00
2017-11-15 11:56:58 +11:00
2018-06-12 13:53:43 +10:00
2017-07-31 18:35:40 +10:00
2018-05-22 14:18:16 +10:00
2017-08-30 21:02:00 +10:00
2018-02-21 22:39:25 +11:00
2017-08-30 21:02:00 +10:00
2018-06-12 12:29:26 +10:00
2017-10-10 16:01:04 +11:00
2018-04-04 14:24:03 +10:00
2017-09-01 11:11:09 +10:00
2018-04-04 14:23:25 +10:00
2017-12-11 13:49:09 +11:00
2017-02-22 12:58:11 +11:00
2018-06-12 13:50:11 +10:00
2018-05-01 15:53:25 +10:00
2017-07-31 18:35:40 +10:00
2017-12-07 10:31:14 +02:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2018-06-12 15:06:11 +10:00
2017-07-18 11:57:39 +10:00
2018-05-21 12:48:26 +10:00
2017-12-29 14:05:48 +11:00
2018-05-23 00:23:36 +10:00
2017-12-29 22:24:53 +11:00
2017-12-29 22:24:46 +11:00
2017-12-28 16:46:30 +11:00
2018-04-27 15:10:42 +10:00
2017-12-29 22:24:46 +11:00
2018-05-15 11:17:28 +10:00
2017-12-28 16:46:30 +11:00
2017-10-04 12:37:50 +11:00
2018-06-08 11:48:25 +10:00
2017-11-24 14:48:23 +11:00
2017-07-18 11:57:39 +10:00
2017-07-31 18:35:40 +10:00
2017-10-04 12:37:50 +11:00
2017-12-11 13:49:09 +11:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-10-04 12:37:50 +11:00
2018-05-11 13:44:50 +10:00
2018-02-18 21:51:04 -06:00
2017-07-31 18:35:40 +10:00
2018-03-17 00:31:40 +11:00
2018-03-17 00:31:40 +11:00
2017-07-31 18:35:40 +10:00
2018-05-21 12:49:56 +10:00
2018-05-17 11:20:06 +10:00
2017-07-31 18:35:40 +10:00
2018-05-22 16:54:03 +10:00
2017-07-31 18:35:40 +10:00
2017-10-04 12:37:50 +11:00
2018-04-05 01:11:26 +10:00
2018-04-05 01:11:26 +10:00
2018-03-02 11:01:24 +11:00
2017-09-18 00:06:43 +03:00
2017-10-24 22:39:36 +11:00
2018-03-13 14:03:15 +11:00
2017-07-31 18:35:40 +10:00
2018-02-20 17:56:58 +11:00
2018-02-20 17:56:58 +11:00
2017-11-20 09:30:06 +02:00
2017-11-20 09:30:06 +02:00
2017-10-04 12:37:50 +11:00
2017-12-12 16:53:44 +11:00
2017-10-04 12:37:50 +11:00
2017-10-04 12:37:50 +11:00
2018-02-14 23:17:06 +11:00
2017-10-04 12:37:50 +11:00
2017-12-19 14:01:19 +11:00
2017-10-04 12:37:50 +11:00
2017-10-04 12:37:50 +11:00
2018-04-05 16:14:17 +10:00
2017-11-16 13:53:04 +11:00
2018-04-10 13:41:32 +10:00
2017-06-09 17:33:01 +03:00
2018-02-14 18:19:22 +11:00
2017-10-04 12:37:50 +11:00
2017-08-29 13:16:30 +10:00
2018-06-08 12:12:08 +10:00
2018-06-08 11:48:25 +10:00
2017-07-31 18:35:40 +10:00
2017-11-24 14:48:23 +11:00
2017-12-29 13:44:26 +11:00
2017-07-31 18:35:40 +10:00
2018-06-12 12:17:43 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2018-02-14 18:41:17 +11:00
2016-11-16 18:13:50 +11:00
2018-06-12 13:53:43 +10:00
2018-02-19 00:26:14 +11:00
2017-12-11 13:49:09 +11:00
2017-11-29 17:01:39 +11:00
2018-02-19 16:12:44 +11:00
2018-02-19 00:26:14 +11:00
2018-06-06 14:28:23 +10:00
2017-03-14 11:52:05 +11:00
2018-05-18 15:23:02 +10:00
2017-07-31 18:35:40 +10:00
2017-07-18 11:57:39 +10:00
2018-05-23 00:23:36 +10:00
2017-12-05 00:38:41 +02:00
2018-06-12 15:06:11 +10:00
2018-05-10 23:00:04 +10:00
2017-03-20 15:20:26 +11:00
2017-07-31 18:35:40 +10:00
2017-07-31 18:35:40 +10:00
2017-10-04 12:37:50 +11:00
2017-10-05 10:49:44 +11:00
2017-07-31 18:35:40 +10:00
2017-12-11 22:39:12 +11:00
2017-12-11 13:49:09 +11:00
2017-07-31 18:35:40 +10:00
2018-06-18 12:35:56 +10:00
2018-06-18 12:35:56 +10:00
2018-02-14 18:19:22 +11:00
2017-09-06 16:43:09 +10:00
2018-06-08 11:48:25 +10:00
2017-10-05 10:49:44 +11:00
2017-09-21 20:29:41 +10:00
2017-09-26 11:59:11 +10:00