2022-08-18 13:57:49 -07:00
|
|
|
From f7b4492d37b35a64a3a6c5bbbdb375494095b6ff Mon Sep 17 00:00:00 2001
|
2022-05-09 01:21:54 -04:00
|
|
|
From: PJ Reiniger <pj.reiniger@gmail.com>
|
|
|
|
|
Date: Tue, 26 Apr 2022 15:09:43 -0400
|
2022-06-09 23:30:16 -07:00
|
|
|
Subject: [PATCH 2/9] Fix warnings
|
2022-05-09 01:21:54 -04:00
|
|
|
|
|
|
|
|
---
|
2022-05-18 20:40:27 -07:00
|
|
|
include/uv/win.h | 5 +++
|
|
|
|
|
src/idna.c | 2 +-
|
|
|
|
|
src/inet.c | 4 ++
|
|
|
|
|
src/threadpool.c | 4 ++
|
|
|
|
|
src/unix/core.c | 12 ++++-
|
|
|
|
|
src/unix/darwin.c | 106 +++++++++++++++++++++++---------------------
|
|
|
|
|
src/unix/internal.h | 4 +-
|
|
|
|
|
src/unix/thread.c | 6 ---
|
|
|
|
|
src/uv-common.c | 8 ++++
|
|
|
|
|
src/win/fs-event.c | 2 +
|
|
|
|
|
src/win/fs.c | 2 +
|
|
|
|
|
src/win/pipe.c | 2 +
|
|
|
|
|
src/win/process.c | 2 +
|
|
|
|
|
src/win/tty.c | 2 +
|
|
|
|
|
14 files changed, 99 insertions(+), 62 deletions(-)
|
2022-05-09 01:21:54 -04:00
|
|
|
|
|
|
|
|
diff --git a/include/uv/win.h b/include/uv/win.h
|
2022-08-18 13:57:49 -07:00
|
|
|
index 56a4cf11..10d5e8f1 100644
|
2022-05-09 01:21:54 -04:00
|
|
|
--- a/include/uv/win.h
|
|
|
|
|
+++ b/include/uv/win.h
|
2022-05-18 20:40:27 -07:00
|
|
|
@@ -201,11 +201,16 @@ typedef int (WSAAPI* LPFN_WSARECVFROM)
|
2022-05-09 01:21:54 -04:00
|
|
|
LPWSAOVERLAPPED overlapped,
|
|
|
|
|
LPWSAOVERLAPPED_COMPLETION_ROUTINE completion_routine);
|
|
|
|
|
|
|
|
|
|
+#pragma warning(push)
|
|
|
|
|
+#pragma warning(disable : 28251)
|
|
|
|
|
+
|
|
|
|
|
#ifndef _NTDEF_
|
|
|
|
|
typedef LONG NTSTATUS;
|
|
|
|
|
typedef NTSTATUS *PNTSTATUS;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
+#pragma warning(pop)
|
|
|
|
|
+
|
|
|
|
|
#ifndef RTL_CONDITION_VARIABLE_INIT
|
|
|
|
|
typedef PVOID CONDITION_VARIABLE, *PCONDITION_VARIABLE;
|
|
|
|
|
#endif
|
|
|
|
|
diff --git a/src/idna.c b/src/idna.c
|
2022-08-18 13:57:49 -07:00
|
|
|
index 93d982ca..36a39a08 100644
|
2022-05-09 01:21:54 -04:00
|
|
|
--- a/src/idna.c
|
|
|
|
|
+++ b/src/idna.c
|
2022-05-18 20:40:27 -07:00
|
|
|
@@ -106,7 +106,7 @@ static int uv__idna_toascii_label(const char* s, const char* se,
|
2022-05-09 01:21:54 -04:00
|
|
|
char** d, char* de) {
|
|
|
|
|
static const char alphabet[] = "abcdefghijklmnopqrstuvwxyz0123456789";
|
|
|
|
|
const char* ss;
|
|
|
|
|
- unsigned c;
|
|
|
|
|
+ unsigned c = 0;
|
|
|
|
|
unsigned h;
|
|
|
|
|
unsigned k;
|
|
|
|
|
unsigned n;
|
|
|
|
|
diff --git a/src/inet.c b/src/inet.c
|
2022-08-18 13:57:49 -07:00
|
|
|
index ca8b6ac8..1b190255 100644
|
2022-05-09 01:21:54 -04:00
|
|
|
--- a/src/inet.c
|
|
|
|
|
+++ b/src/inet.c
|
|
|
|
|
@@ -27,6 +27,10 @@
|
|
|
|
|
#include "uv.h"
|
|
|
|
|
#include "uv-common.h"
|
|
|
|
|
|
|
|
|
|
+#ifdef _WIN32
|
|
|
|
|
+#pragma warning(disable : 6001)
|
|
|
|
|
+#endif
|
|
|
|
|
+
|
|
|
|
|
#define UV__INET_ADDRSTRLEN 16
|
|
|
|
|
#define UV__INET6_ADDRSTRLEN 46
|
|
|
|
|
|
|
|
|
|
diff --git a/src/threadpool.c b/src/threadpool.c
|
2022-08-18 13:57:49 -07:00
|
|
|
index 1241ace1..718972c3 100644
|
2022-05-09 01:21:54 -04:00
|
|
|
--- a/src/threadpool.c
|
|
|
|
|
+++ b/src/threadpool.c
|
|
|
|
|
@@ -27,6 +27,10 @@
|
|
|
|
|
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
|
|
|
|
|
+#ifdef _WIN32
|
|
|
|
|
+#pragma warning(disable: 6001 6011)
|
|
|
|
|
+#endif
|
|
|
|
|
+
|
|
|
|
|
#define MAX_THREADPOOL_SIZE 1024
|
|
|
|
|
|
|
|
|
|
static uv_once_t once = UV_ONCE_INIT;
|
|
|
|
|
diff --git a/src/unix/core.c b/src/unix/core.c
|
2022-08-18 13:57:49 -07:00
|
|
|
index 6353b0e3..223c5513 100644
|
2022-05-09 01:21:54 -04:00
|
|
|
--- a/src/unix/core.c
|
|
|
|
|
+++ b/src/unix/core.c
|
2022-08-18 13:57:49 -07:00
|
|
|
@@ -544,6 +544,16 @@ int uv__accept(int sockfd) {
|
2022-05-18 20:40:27 -07:00
|
|
|
return peerfd;
|
2022-05-09 01:21:54 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+#if defined(__APPLE__)
|
|
|
|
|
+#pragma GCC diagnostic push
|
|
|
|
|
+#pragma GCC diagnostic ignored "-Wdollar-in-identifier-extension"
|
|
|
|
|
+#if defined(__LP64__)
|
|
|
|
|
+ extern "C" int close$NOCANCEL(int);
|
|
|
|
|
+#else
|
|
|
|
|
+ extern "C" int close$NOCANCEL$UNIX2003(int);
|
|
|
|
|
+#endif
|
|
|
|
|
+#pragma GCC diagnostic pop
|
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
|
|
/* close() on macos has the "interesting" quirk that it fails with EINTR
|
|
|
|
|
* without closing the file descriptor when a thread is in the cancel state.
|
2022-08-18 13:57:49 -07:00
|
|
|
@@ -558,10 +568,8 @@ int uv__close_nocancel(int fd) {
|
2022-05-09 01:21:54 -04:00
|
|
|
#pragma GCC diagnostic push
|
|
|
|
|
#pragma GCC diagnostic ignored "-Wdollar-in-identifier-extension"
|
2022-05-18 20:40:27 -07:00
|
|
|
#if defined(__LP64__) || TARGET_OS_IPHONE
|
2022-05-09 01:21:54 -04:00
|
|
|
- extern int close$NOCANCEL(int);
|
|
|
|
|
return close$NOCANCEL(fd);
|
|
|
|
|
#else
|
|
|
|
|
- extern int close$NOCANCEL$UNIX2003(int);
|
|
|
|
|
return close$NOCANCEL$UNIX2003(fd);
|
|
|
|
|
#endif
|
|
|
|
|
#pragma GCC diagnostic pop
|
2022-05-18 20:40:27 -07:00
|
|
|
diff --git a/src/unix/darwin.c b/src/unix/darwin.c
|
2022-08-18 13:57:49 -07:00
|
|
|
index 5fbf7342..eeb35720 100644
|
2022-05-18 20:40:27 -07:00
|
|
|
--- a/src/unix/darwin.c
|
|
|
|
|
+++ b/src/unix/darwin.c
|
|
|
|
|
@@ -253,64 +253,68 @@ static int uv__get_cpu_speed(uint64_t* speed) {
|
|
|
|
|
|
|
|
|
|
#define S(s) pCFStringCreateWithCString(NULL, (s), kCFStringEncodingUTF8)
|
|
|
|
|
|
|
|
|
|
- kr = pIOMasterPort(MACH_PORT_NULL, &mach_port);
|
|
|
|
|
- assert(kr == KERN_SUCCESS);
|
|
|
|
|
- CFMutableDictionaryRef classes_to_match
|
|
|
|
|
- = pIOServiceMatching("IOPlatformDevice");
|
|
|
|
|
- kr = pIOServiceGetMatchingServices(mach_port, classes_to_match, &it);
|
|
|
|
|
- assert(kr == KERN_SUCCESS);
|
|
|
|
|
- service = pIOIteratorNext(it);
|
|
|
|
|
-
|
|
|
|
|
- CFStringRef device_type_str = S("device_type");
|
|
|
|
|
- CFStringRef clock_frequency_str = S("clock-frequency");
|
|
|
|
|
-
|
|
|
|
|
- while (service != 0) {
|
|
|
|
|
- CFDataRef data;
|
|
|
|
|
- data = pIORegistryEntryCreateCFProperty(service,
|
|
|
|
|
- device_type_str,
|
|
|
|
|
- NULL,
|
|
|
|
|
- 0);
|
|
|
|
|
- if (data) {
|
|
|
|
|
- const UInt8* raw = pCFDataGetBytePtr(data);
|
|
|
|
|
- if (strncmp((char*)raw, "cpu", 3) == 0 ||
|
|
|
|
|
- strncmp((char*)raw, "processor", 9) == 0) {
|
|
|
|
|
- CFDataRef freq_ref;
|
|
|
|
|
- freq_ref = pIORegistryEntryCreateCFProperty(service,
|
|
|
|
|
- clock_frequency_str,
|
|
|
|
|
- NULL,
|
|
|
|
|
- 0);
|
|
|
|
|
- if (freq_ref) {
|
|
|
|
|
- const UInt8* freq_ref_ptr = pCFDataGetBytePtr(freq_ref);
|
|
|
|
|
- CFIndex len = pCFDataGetLength(freq_ref);
|
|
|
|
|
- if (len == 8)
|
|
|
|
|
- memcpy(speed, freq_ref_ptr, 8);
|
|
|
|
|
- else if (len == 4) {
|
|
|
|
|
- uint32_t v;
|
|
|
|
|
- memcpy(&v, freq_ref_ptr, 4);
|
|
|
|
|
- *speed = v;
|
|
|
|
|
- } else {
|
|
|
|
|
- *speed = 0;
|
|
|
|
|
- }
|
|
|
|
|
+ // Braces ensure goto doesn't jump into device_type_str's and
|
|
|
|
|
+ // clock_frequency_str's lifetimes after their initialization
|
|
|
|
|
+ {
|
|
|
|
|
+ kr = pIOMasterPort(MACH_PORT_NULL, &mach_port);
|
|
|
|
|
+ assert(kr == KERN_SUCCESS);
|
|
|
|
|
+ CFMutableDictionaryRef classes_to_match
|
|
|
|
|
+ = pIOServiceMatching("IOPlatformDevice");
|
|
|
|
|
+ kr = pIOServiceGetMatchingServices(mach_port, classes_to_match, &it);
|
|
|
|
|
+ assert(kr == KERN_SUCCESS);
|
|
|
|
|
+ service = pIOIteratorNext(it);
|
|
|
|
|
|
|
|
|
|
- pCFRelease(freq_ref);
|
|
|
|
|
- pCFRelease(data);
|
|
|
|
|
- break;
|
|
|
|
|
+ CFStringRef device_type_str = S("device_type");
|
|
|
|
|
+ CFStringRef clock_frequency_str = S("clock-frequency");
|
|
|
|
|
+
|
|
|
|
|
+ while (service != 0) {
|
|
|
|
|
+ CFDataRef data;
|
|
|
|
|
+ data = pIORegistryEntryCreateCFProperty(service,
|
|
|
|
|
+ device_type_str,
|
|
|
|
|
+ NULL,
|
|
|
|
|
+ 0);
|
|
|
|
|
+ if (data) {
|
|
|
|
|
+ const UInt8* raw = pCFDataGetBytePtr(data);
|
|
|
|
|
+ if (strncmp((char*)raw, "cpu", 3) == 0 ||
|
|
|
|
|
+ strncmp((char*)raw, "processor", 9) == 0) {
|
|
|
|
|
+ CFDataRef freq_ref;
|
|
|
|
|
+ freq_ref = pIORegistryEntryCreateCFProperty(service,
|
|
|
|
|
+ clock_frequency_str,
|
|
|
|
|
+ NULL,
|
|
|
|
|
+ 0);
|
|
|
|
|
+ if (freq_ref) {
|
|
|
|
|
+ const UInt8* freq_ref_ptr = pCFDataGetBytePtr(freq_ref);
|
|
|
|
|
+ CFIndex len = pCFDataGetLength(freq_ref);
|
|
|
|
|
+ if (len == 8)
|
|
|
|
|
+ memcpy(speed, freq_ref_ptr, 8);
|
|
|
|
|
+ else if (len == 4) {
|
|
|
|
|
+ uint32_t v;
|
|
|
|
|
+ memcpy(&v, freq_ref_ptr, 4);
|
|
|
|
|
+ *speed = v;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ *speed = 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ pCFRelease(freq_ref);
|
|
|
|
|
+ pCFRelease(data);
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
}
|
|
|
|
|
+ pCFRelease(data);
|
|
|
|
|
}
|
|
|
|
|
- pCFRelease(data);
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- service = pIOIteratorNext(it);
|
|
|
|
|
- }
|
|
|
|
|
+ service = pIOIteratorNext(it);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
- pIOObjectRelease(it);
|
|
|
|
|
+ pIOObjectRelease(it);
|
|
|
|
|
|
|
|
|
|
- err = 0;
|
|
|
|
|
+ err = 0;
|
|
|
|
|
|
|
|
|
|
- if (device_type_str != NULL)
|
|
|
|
|
- pCFRelease(device_type_str);
|
|
|
|
|
- if (clock_frequency_str != NULL)
|
|
|
|
|
- pCFRelease(clock_frequency_str);
|
|
|
|
|
+ if (device_type_str != NULL)
|
|
|
|
|
+ pCFRelease(device_type_str);
|
|
|
|
|
+ if (clock_frequency_str != NULL)
|
|
|
|
|
+ pCFRelease(clock_frequency_str);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
out:
|
|
|
|
|
if (core_foundation_handle != NULL)
|
2022-05-09 01:21:54 -04:00
|
|
|
diff --git a/src/unix/internal.h b/src/unix/internal.h
|
2022-08-18 13:57:49 -07:00
|
|
|
index cee35c21..f9d1666d 100644
|
2022-05-09 01:21:54 -04:00
|
|
|
--- a/src/unix/internal.h
|
|
|
|
|
+++ b/src/unix/internal.h
|
2022-08-18 13:57:49 -07:00
|
|
|
@@ -312,8 +312,8 @@ UV_UNUSED(static void uv__update_time(uv_loop_t* loop)) {
|
2022-05-09 01:21:54 -04:00
|
|
|
loop->time = uv__hrtime(UV_CLOCK_FAST) / 1000000;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
-UV_UNUSED(static char* uv__basename_r(const char* path)) {
|
|
|
|
|
- char* s;
|
|
|
|
|
+UV_UNUSED(static const char* uv__basename_r(const char* path)) {
|
|
|
|
|
+ const char* s;
|
|
|
|
|
|
|
|
|
|
s = strrchr(path, '/');
|
|
|
|
|
if (s == NULL)
|
|
|
|
|
diff --git a/src/unix/thread.c b/src/unix/thread.c
|
2022-08-18 13:57:49 -07:00
|
|
|
index 759cd0c2..64726bd6 100644
|
2022-05-09 01:21:54 -04:00
|
|
|
--- a/src/unix/thread.c
|
|
|
|
|
+++ b/src/unix/thread.c
|
2022-05-18 20:40:27 -07:00
|
|
|
@@ -244,12 +244,6 @@ int uv_thread_create_ex(uv_thread_t* tid,
|
2022-05-09 01:21:54 -04:00
|
|
|
size_t stack_size;
|
2022-05-18 20:40:27 -07:00
|
|
|
size_t min_stack_size;
|
2022-05-09 01:21:54 -04:00
|
|
|
|
|
|
|
|
- /* Used to squelch a -Wcast-function-type warning. */
|
|
|
|
|
- union {
|
|
|
|
|
- void (*in)(void*);
|
|
|
|
|
- void* (*out)(void*);
|
|
|
|
|
- } f;
|
|
|
|
|
-
|
|
|
|
|
stack_size =
|
|
|
|
|
params->flags & UV_THREAD_HAS_STACK_SIZE ? params->stack_size : 0;
|
|
|
|
|
|
|
|
|
|
diff --git a/src/uv-common.c b/src/uv-common.c
|
2022-08-18 13:57:49 -07:00
|
|
|
index dfb606e3..49026c03 100644
|
2022-05-09 01:21:54 -04:00
|
|
|
--- a/src/uv-common.c
|
|
|
|
|
+++ b/src/uv-common.c
|
2022-08-18 13:57:49 -07:00
|
|
|
@@ -758,6 +758,10 @@ void uv__fs_readdir_cleanup(uv_fs_t* req) {
|
2022-05-09 01:21:54 -04:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+#ifdef __clang__
|
|
|
|
|
+# pragma clang diagnostic push
|
|
|
|
|
+# pragma clang diagnostic ignored "-Wvarargs"
|
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
|
|
int uv_loop_configure(uv_loop_t* loop, uv_loop_option option, ...) {
|
|
|
|
|
va_list ap;
|
2022-08-18 13:57:49 -07:00
|
|
|
@@ -771,6 +775,10 @@ int uv_loop_configure(uv_loop_t* loop, uv_loop_option option, ...) {
|
2022-05-09 01:21:54 -04:00
|
|
|
return err;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+#ifdef __clang__
|
|
|
|
|
+# pragma clang diagnostic pop
|
|
|
|
|
+#endif
|
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
static uv_loop_t default_loop_struct;
|
|
|
|
|
static uv_loop_t* default_loop_ptr;
|
|
|
|
|
diff --git a/src/win/fs-event.c b/src/win/fs-event.c
|
2022-08-18 13:57:49 -07:00
|
|
|
index 15046731..3244a4e4 100644
|
2022-05-09 01:21:54 -04:00
|
|
|
--- a/src/win/fs-event.c
|
|
|
|
|
+++ b/src/win/fs-event.c
|
|
|
|
|
@@ -19,6 +19,8 @@
|
|
|
|
|
* IN THE SOFTWARE.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
+#define _CRT_NONSTDC_NO_WARNINGS
|
|
|
|
|
+
|
|
|
|
|
#include <assert.h>
|
|
|
|
|
#include <errno.h>
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
diff --git a/src/win/fs.c b/src/win/fs.c
|
2022-08-18 13:57:49 -07:00
|
|
|
index 8374012f..f71b3c04 100644
|
2022-05-09 01:21:54 -04:00
|
|
|
--- a/src/win/fs.c
|
|
|
|
|
+++ b/src/win/fs.c
|
|
|
|
|
@@ -19,6 +19,8 @@
|
|
|
|
|
* IN THE SOFTWARE.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
+#define _CRT_NONSTDC_NO_WARNINGS
|
|
|
|
|
+
|
|
|
|
|
#include <assert.h>
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
#include <direct.h>
|
|
|
|
|
diff --git a/src/win/pipe.c b/src/win/pipe.c
|
2022-08-18 13:57:49 -07:00
|
|
|
index cd77061a..f413a72d 100644
|
2022-05-09 01:21:54 -04:00
|
|
|
--- a/src/win/pipe.c
|
|
|
|
|
+++ b/src/win/pipe.c
|
|
|
|
|
@@ -19,6 +19,8 @@
|
|
|
|
|
* IN THE SOFTWARE.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
+#define _CRT_NONSTDC_NO_WARNINGS
|
|
|
|
|
+
|
|
|
|
|
#include <assert.h>
|
|
|
|
|
#include <io.h>
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
diff --git a/src/win/process.c b/src/win/process.c
|
2022-08-18 13:57:49 -07:00
|
|
|
index e857db3e..a49016f6 100644
|
2022-05-09 01:21:54 -04:00
|
|
|
--- a/src/win/process.c
|
|
|
|
|
+++ b/src/win/process.c
|
|
|
|
|
@@ -19,6 +19,8 @@
|
|
|
|
|
* IN THE SOFTWARE.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
+#define _CRT_NONSTDC_NO_WARNINGS
|
|
|
|
|
+
|
|
|
|
|
#include <assert.h>
|
|
|
|
|
#include <io.h>
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
diff --git a/src/win/tty.c b/src/win/tty.c
|
2022-08-18 13:57:49 -07:00
|
|
|
index 267ca645..d7522668 100644
|
2022-05-09 01:21:54 -04:00
|
|
|
--- a/src/win/tty.c
|
|
|
|
|
+++ b/src/win/tty.c
|
|
|
|
|
@@ -19,6 +19,8 @@
|
|
|
|
|
* IN THE SOFTWARE.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
+#define _CRT_NONSTDC_NO_WARNINGS
|
|
|
|
|
+
|
|
|
|
|
#include <assert.h>
|
|
|
|
|
#include <io.h>
|
|
|
|
|
#include <string.h>
|