Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
34ad70b4
Commit
34ad70b4
authored
Dec 06, 2009
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use xmalloc
This reverts commit
59b025e3
.
parent
95a993e5
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
47 deletions
+24
-47
src/modules/cache.c
src/modules/cache.c
+8
-15
src/network/httpd.c
src/network/httpd.c
+16
-32
No files found.
src/modules/cache.c
View file @
34ad70b4
...
@@ -31,7 +31,6 @@
...
@@ -31,7 +31,6 @@
#include <vlc_common.h>
#include <vlc_common.h>
#include "libvlc.h"
#include "libvlc.h"
#include <assert.h>
#include <stdlib.h>
/* free(), strtol() */
#include <stdlib.h>
/* free(), strtol() */
#include <stdio.h>
/* sprintf() */
#include <stdio.h>
/* sprintf() */
#include <string.h>
/* strdup() */
#include <string.h>
/* strdup() */
...
@@ -229,11 +228,8 @@ void CacheLoad( vlc_object_t *p_this, module_bank_t *p_bank, bool b_delete )
...
@@ -229,11 +228,8 @@ void CacheLoad( vlc_object_t *p_this, module_bank_t *p_bank, bool b_delete )
}
}
if
(
i_cache
)
if
(
i_cache
)
{
pp_cache
=
p_bank
->
pp_loaded_cache
=
pp_cache
=
p_bank
->
pp_loaded_cache
=
malloc
(
i_cache
*
sizeof
(
void
*
)
);
xmalloc
(
i_cache
*
sizeof
(
void
*
)
);
assert
(
pp_cache
);
}
#define LOAD_IMMEDIATE(a) \
#define LOAD_IMMEDIATE(a) \
if( fread( (void *)&a, sizeof(char), sizeof(a), file ) != sizeof(a) ) goto error
if( fread( (void *)&a, sizeof(char), sizeof(a), file ) != sizeof(a) ) goto error
...
@@ -244,7 +240,7 @@ void CacheLoad( vlc_object_t *p_this, module_bank_t *p_bank, bool b_delete )
...
@@ -244,7 +240,7 @@ void CacheLoad( vlc_object_t *p_this, module_bank_t *p_bank, bool b_delete )
|| ( i_size > 16384 ) ) \
|| ( i_size > 16384 ) ) \
goto error; \
goto error; \
if( i_size ) { \
if( i_size ) { \
char *psz = malloc( i_size ); \
char *psz =
x
malloc( i_size ); \
if( fread( psz, i_size, 1, file ) != 1 ) { \
if( fread( psz, i_size, 1, file ) != 1 ) { \
free( psz ); \
free( psz ); \
goto error; \
goto error; \
...
@@ -262,8 +258,7 @@ void CacheLoad( vlc_object_t *p_this, module_bank_t *p_bank, bool b_delete )
...
@@ -262,8 +258,7 @@ void CacheLoad( vlc_object_t *p_this, module_bank_t *p_bank, bool b_delete )
uint16_t
i_size
;
uint16_t
i_size
;
int
i_submodules
;
int
i_submodules
;
pp_cache
[
i
]
=
malloc
(
sizeof
(
module_cache_t
)
);
pp_cache
[
i
]
=
xmalloc
(
sizeof
(
module_cache_t
)
);
assert
(
pp_cache
[
i
]
);
p_bank
->
i_loaded_cache
++
;
p_bank
->
i_loaded_cache
++
;
/* Load common info */
/* Load common info */
...
@@ -399,7 +394,7 @@ static int CacheLoadConfig( module_t *p_module, FILE *file )
...
@@ -399,7 +394,7 @@ static int CacheLoadConfig( module_t *p_module, FILE *file )
{
{
int
j
;
int
j
;
p_module
->
p_config
[
i
].
ppsz_list
=
p_module
->
p_config
[
i
].
ppsz_list
=
malloc
(
(
p_module
->
p_config
[
i
].
i_list
+
1
)
*
sizeof
(
char
*
));
x
malloc
(
(
p_module
->
p_config
[
i
].
i_list
+
1
)
*
sizeof
(
char
*
));
if
(
p_module
->
p_config
[
i
].
ppsz_list
)
if
(
p_module
->
p_config
[
i
].
ppsz_list
)
{
{
for
(
j
=
0
;
j
<
p_module
->
p_config
[
i
].
i_list
;
j
++
)
for
(
j
=
0
;
j
<
p_module
->
p_config
[
i
].
i_list
;
j
++
)
...
@@ -411,7 +406,7 @@ static int CacheLoadConfig( module_t *p_module, FILE *file )
...
@@ -411,7 +406,7 @@ static int CacheLoadConfig( module_t *p_module, FILE *file )
{
{
int
j
;
int
j
;
p_module
->
p_config
[
i
].
ppsz_list_text
=
p_module
->
p_config
[
i
].
ppsz_list_text
=
malloc
(
(
p_module
->
p_config
[
i
].
i_list
+
1
)
*
sizeof
(
char
*
));
x
malloc
(
(
p_module
->
p_config
[
i
].
i_list
+
1
)
*
sizeof
(
char
*
));
if
(
p_module
->
p_config
[
i
].
ppsz_list_text
)
if
(
p_module
->
p_config
[
i
].
ppsz_list_text
)
{
{
for
(
j
=
0
;
j
<
p_module
->
p_config
[
i
].
i_list
;
j
++
)
for
(
j
=
0
;
j
<
p_module
->
p_config
[
i
].
i_list
;
j
++
)
...
@@ -422,7 +417,7 @@ static int CacheLoadConfig( module_t *p_module, FILE *file )
...
@@ -422,7 +417,7 @@ static int CacheLoadConfig( module_t *p_module, FILE *file )
if
(
p_module
->
p_config
[
i
].
pi_list
)
if
(
p_module
->
p_config
[
i
].
pi_list
)
{
{
p_module
->
p_config
[
i
].
pi_list
=
p_module
->
p_config
[
i
].
pi_list
=
malloc
(
(
p_module
->
p_config
[
i
].
i_list
+
1
)
*
sizeof
(
int
)
);
x
malloc
(
(
p_module
->
p_config
[
i
].
i_list
+
1
)
*
sizeof
(
int
)
);
if
(
p_module
->
p_config
[
i
].
pi_list
)
if
(
p_module
->
p_config
[
i
].
pi_list
)
{
{
for
(
int
j
=
0
;
j
<
p_module
->
p_config
[
i
].
i_list
;
j
++
)
for
(
int
j
=
0
;
j
<
p_module
->
p_config
[
i
].
i_list
;
j
++
)
...
@@ -434,11 +429,9 @@ static int CacheLoadConfig( module_t *p_module, FILE *file )
...
@@ -434,11 +429,9 @@ static int CacheLoadConfig( module_t *p_module, FILE *file )
if
(
p_module
->
p_config
[
i
].
i_action
)
if
(
p_module
->
p_config
[
i
].
i_action
)
{
{
p_module
->
p_config
[
i
].
ppf_action
=
p_module
->
p_config
[
i
].
ppf_action
=
malloc
(
p_module
->
p_config
[
i
].
i_action
*
sizeof
(
void
*
)
);
xmalloc
(
p_module
->
p_config
[
i
].
i_action
*
sizeof
(
void
*
)
);
assert
(
p_module
->
p_config
[
i
].
ppf_action
);
p_module
->
p_config
[
i
].
ppsz_action_text
=
p_module
->
p_config
[
i
].
ppsz_action_text
=
malloc
(
p_module
->
p_config
[
i
].
i_action
*
sizeof
(
char
*
)
);
xmalloc
(
p_module
->
p_config
[
i
].
i_action
*
sizeof
(
char
*
)
);
assert
(
p_module
->
p_config
[
i
].
ppsz_action_text
);
for
(
int
j
=
0
;
j
<
p_module
->
p_config
[
i
].
i_action
;
j
++
)
for
(
int
j
=
0
;
j
<
p_module
->
p_config
[
i
].
i_action
;
j
++
)
{
{
...
...
src/network/httpd.c
View file @
34ad70b4
...
@@ -460,8 +460,7 @@ httpd_file_t *httpd_FileNew( httpd_host_t *host,
...
@@ -460,8 +460,7 @@ httpd_file_t *httpd_FileNew( httpd_host_t *host,
const
vlc_acl_t
*
p_acl
,
httpd_file_callback_t
pf_fill
,
const
vlc_acl_t
*
p_acl
,
httpd_file_callback_t
pf_fill
,
httpd_file_sys_t
*
p_sys
)
httpd_file_sys_t
*
p_sys
)
{
{
httpd_file_t
*
file
=
malloc
(
sizeof
(
httpd_file_t
)
);
httpd_file_t
*
file
=
xmalloc
(
sizeof
(
httpd_file_t
)
);
assert
(
file
);
if
(
(
file
->
url
=
httpd_UrlNewUnique
(
host
,
psz_url
,
psz_user
,
if
(
(
file
->
url
=
httpd_UrlNewUnique
(
host
,
psz_url
,
psz_user
,
psz_password
,
p_acl
)
psz_password
,
p_acl
)
...
@@ -593,8 +592,7 @@ httpd_HandlerCallBack( httpd_callback_sys_t *p_sys, httpd_client_t *cl,
...
@@ -593,8 +592,7 @@ httpd_HandlerCallBack( httpd_callback_sys_t *p_sys, httpd_client_t *cl,
psz_status
=
httpd_ReasonFromCode
(
i_status
);
psz_status
=
httpd_ReasonFromCode
(
i_status
);
answer
->
i_body
=
sizeof
(
"HTTP/1.0 xxx
\r\n
"
)
answer
->
i_body
=
sizeof
(
"HTTP/1.0 xxx
\r\n
"
)
+
strlen
(
psz_status
)
+
i_headers
-
1
;
+
strlen
(
psz_status
)
+
i_headers
-
1
;
psz_new
=
(
char
*
)
malloc
(
answer
->
i_body
+
1
);
psz_new
=
(
char
*
)
xmalloc
(
answer
->
i_body
+
1
);
assert
(
psz_new
);
sprintf
(
psz_new
,
"HTTP/1.0 %03d %s
\r\n
"
,
i_status
,
psz_status
);
sprintf
(
psz_new
,
"HTTP/1.0 %03d %s
\r\n
"
,
i_status
,
psz_status
);
memcpy
(
&
psz_new
[
strlen
(
psz_new
)],
psz_headers
,
i_headers
);
memcpy
(
&
psz_new
[
strlen
(
psz_new
)],
psz_headers
,
i_headers
);
free
(
answer
->
p_body
);
free
(
answer
->
p_body
);
...
@@ -611,8 +609,7 @@ httpd_handler_t *httpd_HandlerNew( httpd_host_t *host, const char *psz_url,
...
@@ -611,8 +609,7 @@ httpd_handler_t *httpd_HandlerNew( httpd_host_t *host, const char *psz_url,
httpd_handler_callback_t
pf_fill
,
httpd_handler_callback_t
pf_fill
,
httpd_handler_sys_t
*
p_sys
)
httpd_handler_sys_t
*
p_sys
)
{
{
httpd_handler_t
*
handler
=
malloc
(
sizeof
(
httpd_handler_t
)
);
httpd_handler_t
*
handler
=
xmalloc
(
sizeof
(
httpd_handler_t
)
);
assert
(
handler
);
if
(
(
handler
->
url
=
httpd_UrlNewUnique
(
host
,
psz_url
,
psz_user
,
if
(
(
handler
->
url
=
httpd_UrlNewUnique
(
host
,
psz_url
,
psz_user
,
psz_password
,
p_acl
)
psz_password
,
p_acl
)
...
@@ -683,8 +680,7 @@ static int httpd_RedirectCallBack( httpd_callback_sys_t *p_sys,
...
@@ -683,8 +680,7 @@ static int httpd_RedirectCallBack( httpd_callback_sys_t *p_sys,
httpd_redirect_t
*
httpd_RedirectNew
(
httpd_host_t
*
host
,
const
char
*
psz_url_dst
,
httpd_redirect_t
*
httpd_RedirectNew
(
httpd_host_t
*
host
,
const
char
*
psz_url_dst
,
const
char
*
psz_url_src
)
const
char
*
psz_url_src
)
{
{
httpd_redirect_t
*
rdir
=
malloc
(
sizeof
(
httpd_redirect_t
)
);
httpd_redirect_t
*
rdir
=
xmalloc
(
sizeof
(
httpd_redirect_t
)
);
assert
(
rdir
);
if
(
!
(
rdir
->
url
=
httpd_UrlNewUnique
(
host
,
psz_url_src
,
NULL
,
NULL
,
NULL
)
)
)
if
(
!
(
rdir
->
url
=
httpd_UrlNewUnique
(
host
,
psz_url_src
,
NULL
,
NULL
,
NULL
)
)
)
{
{
...
@@ -790,8 +786,7 @@ static int httpd_StreamCallBack( httpd_callback_sys_t *p_sys,
...
@@ -790,8 +786,7 @@ static int httpd_StreamCallBack( httpd_callback_sys_t *p_sys,
answer
->
i_type
=
HTTPD_MSG_ANSWER
;
answer
->
i_type
=
HTTPD_MSG_ANSWER
;
answer
->
i_body
=
i_write
;
answer
->
i_body
=
i_write
;
answer
->
p_body
=
malloc
(
i_write
);
answer
->
p_body
=
xmalloc
(
i_write
);
assert
(
answer
->
p_body
);
memcpy
(
answer
->
p_body
,
&
stream
->
p_buffer
[
i_pos
],
i_write
);
memcpy
(
answer
->
p_body
,
&
stream
->
p_buffer
[
i_pos
],
i_write
);
answer
->
i_body_offset
+=
i_write
;
answer
->
i_body_offset
+=
i_write
;
...
@@ -814,8 +809,7 @@ static int httpd_StreamCallBack( httpd_callback_sys_t *p_sys,
...
@@ -814,8 +809,7 @@ static int httpd_StreamCallBack( httpd_callback_sys_t *p_sys,
if
(
stream
->
i_header
>
0
)
if
(
stream
->
i_header
>
0
)
{
{
answer
->
i_body
=
stream
->
i_header
;
answer
->
i_body
=
stream
->
i_header
;
answer
->
p_body
=
malloc
(
stream
->
i_header
);
answer
->
p_body
=
xmalloc
(
stream
->
i_header
);
assert
(
answer
->
p_body
);
memcpy
(
answer
->
p_body
,
stream
->
p_header
,
stream
->
i_header
);
memcpy
(
answer
->
p_body
,
stream
->
p_header
,
stream
->
i_header
);
}
}
answer
->
i_body_offset
=
stream
->
i_buffer_last_pos
;
answer
->
i_body_offset
=
stream
->
i_buffer_last_pos
;
...
@@ -868,8 +862,7 @@ httpd_stream_t *httpd_StreamNew( httpd_host_t *host,
...
@@ -868,8 +862,7 @@ httpd_stream_t *httpd_StreamNew( httpd_host_t *host,
const
char
*
psz_user
,
const
char
*
psz_password
,
const
char
*
psz_user
,
const
char
*
psz_password
,
const
vlc_acl_t
*
p_acl
)
const
vlc_acl_t
*
p_acl
)
{
{
httpd_stream_t
*
stream
=
malloc
(
sizeof
(
httpd_stream_t
)
);
httpd_stream_t
*
stream
=
xmalloc
(
sizeof
(
httpd_stream_t
)
);
assert
(
stream
);
if
(
(
stream
->
url
=
httpd_UrlNewUnique
(
host
,
psz_url
,
psz_user
,
if
(
(
stream
->
url
=
httpd_UrlNewUnique
(
host
,
psz_url
,
psz_user
,
psz_password
,
p_acl
)
psz_password
,
p_acl
)
...
@@ -890,8 +883,7 @@ httpd_stream_t *httpd_StreamNew( httpd_host_t *host,
...
@@ -890,8 +883,7 @@ httpd_stream_t *httpd_StreamNew( httpd_host_t *host,
stream
->
i_header
=
0
;
stream
->
i_header
=
0
;
stream
->
p_header
=
NULL
;
stream
->
p_header
=
NULL
;
stream
->
i_buffer_size
=
5000000
;
/* 5 Mo per stream */
stream
->
i_buffer_size
=
5000000
;
/* 5 Mo per stream */
stream
->
p_buffer
=
malloc
(
stream
->
i_buffer_size
);
stream
->
p_buffer
=
xmalloc
(
stream
->
i_buffer_size
);
assert
(
stream
->
p_buffer
);
/* We set to 1 to make life simpler
/* We set to 1 to make life simpler
* (this way i_body_offset can never be 0) */
* (this way i_body_offset can never be 0) */
stream
->
i_buffer_pos
=
1
;
stream
->
i_buffer_pos
=
1
;
...
@@ -916,8 +908,7 @@ int httpd_StreamHeader( httpd_stream_t *stream, uint8_t *p_data, int i_data )
...
@@ -916,8 +908,7 @@ int httpd_StreamHeader( httpd_stream_t *stream, uint8_t *p_data, int i_data )
stream
->
i_header
=
i_data
;
stream
->
i_header
=
i_data
;
if
(
i_data
>
0
)
if
(
i_data
>
0
)
{
{
stream
->
p_header
=
malloc
(
i_data
);
stream
->
p_header
=
xmalloc
(
i_data
);
assert
(
stream
->
p_header
);
memcpy
(
stream
->
p_header
,
p_data
,
i_data
);
memcpy
(
stream
->
p_header
,
p_data
,
i_data
);
}
}
vlc_mutex_unlock
(
&
stream
->
lock
);
vlc_mutex_unlock
(
&
stream
->
lock
);
...
@@ -1247,8 +1238,7 @@ static httpd_url_t *httpd_UrlNewPrivate( httpd_host_t *host, const char *psz_url
...
@@ -1247,8 +1238,7 @@ static httpd_url_t *httpd_UrlNewPrivate( httpd_host_t *host, const char *psz_url
}
}
}
}
url
=
malloc
(
sizeof
(
httpd_url_t
)
);
url
=
xmalloc
(
sizeof
(
httpd_url_t
)
);
assert
(
url
);
url
->
host
=
host
;
url
->
host
=
host
;
vlc_mutex_init
(
&
url
->
lock
);
vlc_mutex_init
(
&
url
->
lock
);
...
@@ -1416,8 +1406,7 @@ static void httpd_ClientInit( httpd_client_t *cl, mtime_t now )
...
@@ -1416,8 +1406,7 @@ static void httpd_ClientInit( httpd_client_t *cl, mtime_t now )
cl
->
i_activity_timeout
=
INT64_C
(
10000000
);
cl
->
i_activity_timeout
=
INT64_C
(
10000000
);
cl
->
i_buffer_size
=
HTTPD_CL_BUFSIZE
;
cl
->
i_buffer_size
=
HTTPD_CL_BUFSIZE
;
cl
->
i_buffer
=
0
;
cl
->
i_buffer
=
0
;
cl
->
p_buffer
=
malloc
(
cl
->
i_buffer_size
);
cl
->
p_buffer
=
xmalloc
(
cl
->
i_buffer_size
);
assert
(
cl
->
p_buffer
);
cl
->
i_mode
=
HTTPD_CLIENT_FILE
;
cl
->
i_mode
=
HTTPD_CLIENT_FILE
;
cl
->
b_read_waiting
=
false
;
cl
->
b_read_waiting
=
false
;
...
@@ -1565,8 +1554,7 @@ static void httpd_ClientRecv( httpd_client_t *cl )
...
@@ -1565,8 +1554,7 @@ static void httpd_ClientRecv( httpd_client_t *cl )
cl
->
query
.
i_type
=
HTTPD_MSG_CHANNEL
;
cl
->
query
.
i_type
=
HTTPD_MSG_CHANNEL
;
cl
->
query
.
i_channel
=
cl
->
p_buffer
[
1
];
cl
->
query
.
i_channel
=
cl
->
p_buffer
[
1
];
cl
->
query
.
i_body
=
(
cl
->
p_buffer
[
2
]
<<
8
)
|
cl
->
p_buffer
[
3
];
cl
->
query
.
i_body
=
(
cl
->
p_buffer
[
2
]
<<
8
)
|
cl
->
p_buffer
[
3
];
cl
->
query
.
p_body
=
malloc
(
cl
->
query
.
i_body
);
cl
->
query
.
p_body
=
xmalloc
(
cl
->
query
.
i_body
);
assert
(
cl
->
query
.
p_body
);
cl
->
i_buffer
-=
4
;
cl
->
i_buffer
-=
4
;
memcpy
(
cl
->
query
.
p_body
,
cl
->
p_buffer
+
4
,
cl
->
i_buffer
);
memcpy
(
cl
->
query
.
p_body
,
cl
->
p_buffer
+
4
,
cl
->
i_buffer
);
}
}
...
@@ -1847,8 +1835,7 @@ static void httpd_ClientRecv( httpd_client_t *cl )
...
@@ -1847,8 +1835,7 @@ static void httpd_ClientRecv( httpd_client_t *cl )
/* TODO Mhh, handle the case client will only send a
/* TODO Mhh, handle the case client will only send a
* request and close the connection
* request and close the connection
* to mark and of body (probably only RTSP) */
* to mark and of body (probably only RTSP) */
cl
->
query
.
p_body
=
malloc
(
cl
->
query
.
i_body
);
cl
->
query
.
p_body
=
xmalloc
(
cl
->
query
.
i_body
);
assert
(
cl
->
query
.
p_body
);
cl
->
i_buffer
=
0
;
cl
->
i_buffer
=
0
;
}
}
else
else
...
@@ -1936,8 +1923,7 @@ static void httpd_ClientSend( httpd_client_t *cl )
...
@@ -1936,8 +1923,7 @@ static void httpd_ClientSend( httpd_client_t *cl )
{
{
cl
->
i_buffer_size
=
i_size
;
cl
->
i_buffer_size
=
i_size
;
free
(
cl
->
p_buffer
);
free
(
cl
->
p_buffer
);
cl
->
p_buffer
=
malloc
(
i_size
);
cl
->
p_buffer
=
xmalloc
(
i_size
);
assert
(
cl
->
p_buffer
);
}
}
p
=
(
char
*
)
cl
->
p_buffer
;
p
=
(
char
*
)
cl
->
p_buffer
;
...
@@ -2380,8 +2366,7 @@ static void* httpd_HostThread( void *data )
...
@@ -2380,8 +2366,7 @@ static void* httpd_HostThread( void *data )
cl
->
i_buffer
=
0
;
cl
->
i_buffer
=
0
;
cl
->
i_buffer_size
=
1000
;
cl
->
i_buffer_size
=
1000
;
free
(
cl
->
p_buffer
);
free
(
cl
->
p_buffer
);
cl
->
p_buffer
=
malloc
(
cl
->
i_buffer_size
);
cl
->
p_buffer
=
xmalloc
(
cl
->
i_buffer_size
);
assert
(
cl
->
p_buffer
);
cl
->
i_state
=
HTTPD_CLIENT_RECEIVING
;
cl
->
i_state
=
HTTPD_CLIENT_RECEIVING
;
}
}
else
else
...
@@ -2399,8 +2384,7 @@ static void* httpd_HostThread( void *data )
...
@@ -2399,8 +2384,7 @@ static void* httpd_HostThread( void *data )
cl
->
i_buffer
=
0
;
cl
->
i_buffer
=
0
;
cl
->
i_buffer_size
=
1000
;
cl
->
i_buffer_size
=
1000
;
free
(
cl
->
p_buffer
);
free
(
cl
->
p_buffer
);
cl
->
p_buffer
=
malloc
(
cl
->
i_buffer_size
);
cl
->
p_buffer
=
xmalloc
(
cl
->
i_buffer_size
);
assert
(
cl
->
p_buffer
);
cl
->
i_state
=
HTTPD_CLIENT_RECEIVING
;
cl
->
i_state
=
HTTPD_CLIENT_RECEIVING
;
cl
->
b_read_waiting
=
false
;
cl
->
b_read_waiting
=
false
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment