Separate common slice utilities, grpc_error into their own libraries (#27441)

* make error independent

* Separate grpc_error into its own library

This is forward work to move Closure, ExecCtx into their own libraries
in order to make use of them in the activity code for resource quota
wakeups.

* Automated change: Fix sanity tests

* fixes

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
pull/27446/head
Craig Tiller 3 years ago committed by GitHub
parent c89d05559b
commit ffa4365031
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 95
      BUILD
  2. 2
      CMakeLists.txt
  3. 2
      Makefile
  4. 2
      build_autogenerated.yaml
  5. 1
      config.m4
  6. 1
      config.w32
  7. 1
      gRPC-Core.podspec
  8. 1
      grpc.gemspec
  9. 2
      grpc.gyp
  10. 1
      package.xml
  11. 10
      src/core/lib/iomgr/error.cc
  12. 1
      src/core/lib/security/authorization/rbac_translator.cc
  13. 16
      src/core/lib/slice/slice.cc
  14. 39
      src/core/lib/slice/slice_api.cc
  15. 1
      src/core/lib/slice/slice_internal.h
  16. 1
      src/python/grpcio/grpc_core_dependencies.py
  17. 1
      tools/doxygen/Doxyfile.c++.internal
  18. 1
      tools/doxygen/Doxyfile.core.internal
  19. 4
      tools/run_tests/sanity/core_banned_functions.py

95
BUILD

@ -363,6 +363,7 @@ grpc_cc_library(
"grpc_common",
"grpc_lb_policy_grpclb",
"grpc_trace",
"slice",
],
)
@ -404,6 +405,7 @@ grpc_cc_library(
"grpc_trace",
"grpc_transport_chttp2_client_secure",
"grpc_transport_chttp2_server_secure",
"slice",
],
)
@ -440,6 +442,7 @@ grpc_cc_library(
],
deps = [
"grpc++_internals",
"slice",
],
)
@ -473,6 +476,7 @@ grpc_cc_library(
language = "c++",
public_hdrs = GRPCXX_PUBLIC_HDRS,
deps = [
"error",
"gpr_base",
"grpc",
"grpc++_base",
@ -483,6 +487,7 @@ grpc_cc_library(
"grpc_codegen",
"grpc_secure",
"ref_counted_ptr",
"slice",
],
)
@ -1286,6 +1291,41 @@ grpc_cc_library(
],
)
grpc_cc_library(
name = "slice",
srcs = [
"src/core/lib/slice/slice.cc",
"src/core/lib/slice/slice_string_helpers.cc",
],
hdrs = [
"src/core/lib/slice/slice_internal.h",
"src/core/lib/slice/slice_string_helpers.h",
],
deps = [
"gpr_base",
"ref_counted",
"slice_refcount",
],
)
grpc_cc_library(
name = "error",
srcs = [
"src/core/lib/iomgr/error.cc",
],
hdrs = [
"src/core/lib/iomgr/error.h",
"src/core/lib/iomgr/error_internal.h",
],
deps = [
"gpr",
"grpc_codegen",
"grpc_trace",
"slice",
"useful",
],
)
grpc_cc_library(
name = "grpc_base_c",
srcs = [
@ -1327,7 +1367,6 @@ grpc_cc_library(
"src/core/lib/iomgr/endpoint_pair_event_engine.cc",
"src/core/lib/iomgr/endpoint_pair_posix.cc",
"src/core/lib/iomgr/endpoint_pair_windows.cc",
"src/core/lib/iomgr/error.cc",
"src/core/lib/iomgr/error_cfstream.cc",
"src/core/lib/iomgr/ev_apple.cc",
"src/core/lib/iomgr/ev_epoll1_linux.cc",
@ -1418,10 +1457,9 @@ grpc_cc_library(
"src/core/lib/json/json_writer.cc",
"src/core/lib/slice/b64.cc",
"src/core/lib/slice/percent_encoding.cc",
"src/core/lib/slice/slice.cc",
"src/core/lib/slice/slice_api.cc",
"src/core/lib/slice/slice_buffer.cc",
"src/core/lib/slice/slice_intern.cc",
"src/core/lib/slice/slice_string_helpers.cc",
"src/core/lib/surface/api_trace.cc",
"src/core/lib/surface/byte_buffer.cc",
"src/core/lib/surface/byte_buffer_reader.cc",
@ -1456,6 +1494,8 @@ grpc_cc_library(
"src/core/lib/uri/uri_parser.cc",
],
hdrs = [
"src/core/lib/transport/error_utils.h",
"src/core/lib/transport/http2_errors.h",
"src/core/lib/address_utils/parse_address.h",
"src/core/lib/address_utils/sockaddr_utils.h",
"src/core/lib/avl/avl.h",
@ -1495,9 +1535,7 @@ grpc_cc_library(
"src/core/lib/iomgr/endpoint.h",
"src/core/lib/iomgr/endpoint_cfstream.h",
"src/core/lib/iomgr/endpoint_pair.h",
"src/core/lib/iomgr/error.h",
"src/core/lib/iomgr/error_cfstream.h",
"src/core/lib/iomgr/error_internal.h",
"src/core/lib/iomgr/ev_apple.h",
"src/core/lib/iomgr/ev_epoll1_linux.h",
"src/core/lib/iomgr/ev_epollex_linux.h",
@ -1567,8 +1605,6 @@ grpc_cc_library(
"src/core/lib/json/json_util.h",
"src/core/lib/slice/b64.h",
"src/core/lib/slice/percent_encoding.h",
"src/core/lib/slice/slice_internal.h",
"src/core/lib/slice/slice_string_helpers.h",
"src/core/lib/surface/api_trace.h",
"src/core/lib/surface/call.h",
"src/core/lib/surface/call_test_only.h",
@ -1586,8 +1622,6 @@ grpc_cc_library(
"src/core/lib/transport/bdp_estimator.h",
"src/core/lib/transport/byte_stream.h",
"src/core/lib/transport/connectivity_state.h",
"src/core/lib/transport/error_utils.h",
"src/core/lib/transport/http2_errors.h",
"src/core/lib/transport/metadata.h",
"src/core/lib/transport/metadata_batch.h",
"src/core/lib/transport/pid_controller.h",
@ -1598,6 +1632,17 @@ grpc_cc_library(
"src/core/lib/transport/transport.h",
"src/core/lib/transport/transport_impl.h",
"src/core/lib/uri/uri_parser.h",
] +
# TODO(ctiller): remove these
# These headers used to be vended by this target, but they have been split
# out into separate targets now. In order to transition downstream code, we
# re-export these headers from here for now, and when LSC's have completed
# to clean this up, we'll remove these.
[
"src/core/lib/iomgr/error.h",
"src/core/lib/iomgr/error_internal.h",
"src/core/lib/slice/slice_internal.h",
"src/core/lib/slice/slice_string_helpers.h",
],
external_deps = [
"absl/container:flat_hash_map",
@ -1617,6 +1662,7 @@ grpc_cc_library(
deps = [
"bitset",
"dual_ref_counted",
"error",
"gpr_base",
"gpr_codegen",
"gpr_tls",
@ -1625,6 +1671,7 @@ grpc_cc_library(
"orphanable",
"ref_counted",
"ref_counted_ptr",
"slice",
"slice_refcount",
"useful",
],
@ -1755,6 +1802,7 @@ grpc_cc_library(
deps = [
"config",
"debug_location",
"error",
"gpr_base",
"grpc_base_c",
"grpc_client_authority_filter",
@ -1765,6 +1813,7 @@ grpc_cc_library(
"orphanable",
"ref_counted",
"ref_counted_ptr",
"slice",
"udpa_orca_upb",
"useful",
],
@ -1809,6 +1858,7 @@ grpc_cc_library(
deps = [
"gpr_base",
"grpc_base_c",
"slice",
],
)
@ -1824,6 +1874,7 @@ grpc_cc_library(
deps = [
"gpr_base",
"grpc_base_c",
"slice",
],
)
@ -1891,6 +1942,7 @@ grpc_cc_library(
"gpr_base",
"grpc_base_c",
"grpc_message_size_filter",
"slice",
],
)
@ -1972,6 +2024,7 @@ grpc_cc_library(
],
language = "c++",
deps = [
"error",
"google_api_upb",
"gpr_base",
"grpc_base_c",
@ -1982,6 +2035,7 @@ grpc_cc_library(
"grpc_transport_chttp2_client_insecure",
"orphanable",
"ref_counted_ptr",
"slice",
],
)
@ -2010,6 +2064,7 @@ grpc_cc_library(
],
language = "c++",
deps = [
"error",
"google_api_upb",
"gpr_base",
"grpc_base_c",
@ -2021,6 +2076,7 @@ grpc_cc_library(
"grpc_transport_chttp2_client_secure",
"orphanable",
"ref_counted_ptr",
"slice",
],
)
@ -2073,6 +2129,7 @@ grpc_cc_library(
"envoy_core_upb",
"envoy_core_upbdefs",
"envoy_type_upb",
"error",
"google_api_upb",
"gpr_base",
"gpr_codegen",
@ -2086,6 +2143,7 @@ grpc_cc_library(
"grpc_transport_chttp2_client_secure",
"orphanable",
"ref_counted_ptr",
"slice",
"slice_refcount",
"udpa_type_upb",
"udpa_type_upbdefs",
@ -2121,9 +2179,11 @@ grpc_cc_library(
],
language = "c++",
deps = [
"error",
"gpr_base",
"grpc_base_c",
"grpc_xds_client",
"slice",
],
)
@ -2377,10 +2437,12 @@ grpc_cc_library(
],
language = "c++",
deps = [
"error",
"gpr",
"grpc++_base",
"grpc_base_c",
"grpc_secure",
"slice",
],
alwayslink = 1,
)
@ -2434,6 +2496,7 @@ grpc_cc_library(
"gpr_codegen",
"lb_server_load_reporting_filter",
"lb_server_load_reporting_service_server_builder_plugin",
"slice",
],
)
@ -2551,6 +2614,7 @@ grpc_cc_library(
],
language = "c++",
deps = [
"error",
"gpr_base",
"grpc_base_c",
"grpc_client_channel",
@ -2572,6 +2636,7 @@ grpc_cc_library(
"gpr_base",
"grpc_base_c",
"grpc_client_channel",
"slice",
],
)
@ -2588,6 +2653,7 @@ grpc_cc_library(
"gpr_base",
"grpc_base_c",
"grpc_client_channel",
"slice",
"useful",
],
)
@ -2750,6 +2816,7 @@ grpc_cc_library(
deps = [
"alts_util",
"config",
"error",
"gpr_base",
"grpc_base",
"grpc_base_c",
@ -2760,6 +2827,7 @@ grpc_cc_library(
"grpc_transport_chttp2_alpn",
"ref_counted",
"ref_counted_ptr",
"slice",
"slice_refcount",
"tsi",
"tsi_interface",
@ -2853,6 +2921,7 @@ grpc_cc_library(
"grpc_matchers",
"grpc_rbac_engine",
"grpc_secure",
"useful",
],
)
@ -3027,6 +3096,7 @@ grpc_cc_library(
"hpack_encoder_table",
"match",
"popularity_count",
"slice",
"slice_refcount",
"useful",
],
@ -3064,6 +3134,7 @@ grpc_cc_library(
"grpc_base_c",
"grpc_client_channel",
"grpc_transport_chttp2",
"slice",
],
)
@ -3090,12 +3161,14 @@ grpc_cc_library(
],
language = "c++",
deps = [
"error",
"gpr_base",
"grpc_base_c",
"grpc_client_channel",
"grpc_secure",
"grpc_transport_chttp2",
"grpc_transport_chttp2_client_connector",
"slice",
],
)
@ -3121,6 +3194,7 @@ grpc_cc_library(
"grpc_transport_chttp2",
"ref_counted",
"ref_counted_ptr",
"slice",
],
)
@ -3175,6 +3249,7 @@ grpc_cc_library(
"gpr_base",
"grpc_base_c",
"grpc_trace",
"slice",
],
)
@ -3237,6 +3312,7 @@ grpc_cc_library(
deps = [
"gpr_base",
"grpc_base_c",
"slice",
"tsi_interface",
"useful",
],
@ -3315,6 +3391,7 @@ grpc_cc_library(
"gpr_base",
"grpc_base_c",
"grpc_transport_chttp2_client_insecure",
"slice",
"tsi_interface",
"useful",
],

2
CMakeLists.txt generated

@ -2039,6 +2039,7 @@ add_library(grpc
src/core/lib/slice/b64.cc
src/core/lib/slice/percent_encoding.cc
src/core/lib/slice/slice.cc
src/core/lib/slice/slice_api.cc
src/core/lib/slice/slice_buffer.cc
src/core/lib/slice/slice_intern.cc
src/core/lib/slice/slice_refcount.cc
@ -2621,6 +2622,7 @@ add_library(grpc_unsecure
src/core/lib/slice/b64.cc
src/core/lib/slice/percent_encoding.cc
src/core/lib/slice/slice.cc
src/core/lib/slice/slice_api.cc
src/core/lib/slice/slice_buffer.cc
src/core/lib/slice/slice_intern.cc
src/core/lib/slice/slice_refcount.cc

2
Makefile generated

@ -1543,6 +1543,7 @@ LIBGRPC_SRC = \
src/core/lib/slice/b64.cc \
src/core/lib/slice/percent_encoding.cc \
src/core/lib/slice/slice.cc \
src/core/lib/slice/slice_api.cc \
src/core/lib/slice/slice_buffer.cc \
src/core/lib/slice/slice_intern.cc \
src/core/lib/slice/slice_refcount.cc \
@ -1973,6 +1974,7 @@ LIBGRPC_UNSECURE_SRC = \
src/core/lib/slice/b64.cc \
src/core/lib/slice/percent_encoding.cc \
src/core/lib/slice/slice.cc \
src/core/lib/slice/slice_api.cc \
src/core/lib/slice/slice_buffer.cc \
src/core/lib/slice/slice_intern.cc \
src/core/lib/slice/slice_refcount.cc \

@ -1456,6 +1456,7 @@ libs:
- src/core/lib/slice/b64.cc
- src/core/lib/slice/percent_encoding.cc
- src/core/lib/slice/slice.cc
- src/core/lib/slice/slice_api.cc
- src/core/lib/slice/slice_buffer.cc
- src/core/lib/slice/slice_intern.cc
- src/core/lib/slice/slice_refcount.cc
@ -2175,6 +2176,7 @@ libs:
- src/core/lib/slice/b64.cc
- src/core/lib/slice/percent_encoding.cc
- src/core/lib/slice/slice.cc
- src/core/lib/slice/slice_api.cc
- src/core/lib/slice/slice_buffer.cc
- src/core/lib/slice/slice_intern.cc
- src/core/lib/slice/slice_refcount.cc

1
config.m4 generated

@ -596,6 +596,7 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/slice/b64.cc \
src/core/lib/slice/percent_encoding.cc \
src/core/lib/slice/slice.cc \
src/core/lib/slice/slice_api.cc \
src/core/lib/slice/slice_buffer.cc \
src/core/lib/slice/slice_intern.cc \
src/core/lib/slice/slice_refcount.cc \

1
config.w32 generated

@ -562,6 +562,7 @@ if (PHP_GRPC != "no") {
"src\\core\\lib\\slice\\b64.cc " +
"src\\core\\lib\\slice\\percent_encoding.cc " +
"src\\core\\lib\\slice\\slice.cc " +
"src\\core\\lib\\slice\\slice_api.cc " +
"src\\core\\lib\\slice\\slice_buffer.cc " +
"src\\core\\lib\\slice\\slice_intern.cc " +
"src\\core\\lib\\slice\\slice_refcount.cc " +

1
gRPC-Core.podspec generated

@ -1253,6 +1253,7 @@ Pod::Spec.new do |s|
'src/core/lib/slice/percent_encoding.cc',
'src/core/lib/slice/percent_encoding.h',
'src/core/lib/slice/slice.cc',
'src/core/lib/slice/slice_api.cc',
'src/core/lib/slice/slice_buffer.cc',
'src/core/lib/slice/slice_intern.cc',
'src/core/lib/slice/slice_internal.h',

1
grpc.gemspec generated

@ -1166,6 +1166,7 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/slice/percent_encoding.cc )
s.files += %w( src/core/lib/slice/percent_encoding.h )
s.files += %w( src/core/lib/slice/slice.cc )
s.files += %w( src/core/lib/slice/slice_api.cc )
s.files += %w( src/core/lib/slice/slice_buffer.cc )
s.files += %w( src/core/lib/slice/slice_intern.cc )
s.files += %w( src/core/lib/slice/slice_internal.h )

2
grpc.gyp generated

@ -984,6 +984,7 @@
'src/core/lib/slice/b64.cc',
'src/core/lib/slice/percent_encoding.cc',
'src/core/lib/slice/slice.cc',
'src/core/lib/slice/slice_api.cc',
'src/core/lib/slice/slice_buffer.cc',
'src/core/lib/slice/slice_intern.cc',
'src/core/lib/slice/slice_refcount.cc',
@ -1389,6 +1390,7 @@
'src/core/lib/slice/b64.cc',
'src/core/lib/slice/percent_encoding.cc',
'src/core/lib/slice/slice.cc',
'src/core/lib/slice/slice_api.cc',
'src/core/lib/slice/slice_buffer.cc',
'src/core/lib/slice/slice_intern.cc',
'src/core/lib/slice/slice_refcount.cc',

1
package.xml generated

@ -1146,6 +1146,7 @@
<file baseinstalldir="/" name="src/core/lib/slice/percent_encoding.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/slice/percent_encoding.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/slice/slice.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/slice/slice_api.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/slice/slice_buffer.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/slice/slice_intern.cc" role="src" />
<file baseinstalldir="/" name="src/core/lib/slice/slice_internal.h" role="src" />

@ -22,7 +22,7 @@
#include <inttypes.h>
#include <string.h>
#include <grpc/status.h>
#include <grpc/impl/codegen/status.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
@ -34,7 +34,6 @@
#include "src/core/lib/debug/trace.h"
#include "src/core/lib/gpr/useful.h"
#include "src/core/lib/iomgr/error_internal.h"
#include "src/core/lib/profiling/timers.h"
#include "src/core/lib/slice/slice_internal.h"
grpc_core::DebugOnlyTraceFlag grpc_trace_error_refcount(false,
@ -439,7 +438,6 @@ grpc_error_handle grpc_error_create(const char* file, int line,
const grpc_slice& desc,
grpc_error_handle* referencing,
size_t num_referencing) {
GPR_TIMER_SCOPE("grpc_error_create", 0);
uint8_t initial_arena_capacity = static_cast<uint8_t>(
DEFAULT_ERROR_CAPACITY +
static_cast<uint8_t>(num_referencing * SLOTS_PER_LINKED_ERROR) +
@ -511,7 +509,6 @@ static void ref_errs(grpc_error_handle err) {
}
static grpc_error_handle copy_error_and_unref(grpc_error_handle in) {
GPR_TIMER_SCOPE("copy_error_and_unref", 0);
grpc_error_handle out;
if (grpc_error_is_special(in)) {
out = GRPC_ERROR_CREATE_FROM_STATIC_STRING("unknown");
@ -563,7 +560,6 @@ static grpc_error_handle copy_error_and_unref(grpc_error_handle in) {
grpc_error_handle grpc_error_set_int(grpc_error_handle src,
grpc_error_ints which, intptr_t value) {
GPR_TIMER_SCOPE("grpc_error_set_int", 0);
grpc_error_handle new_err = copy_error_and_unref(src);
internal_set_int(&new_err, which, value);
return new_err;
@ -586,7 +582,6 @@ const special_error_status_map error_status_map[] = {
bool grpc_error_get_int(grpc_error_handle err, grpc_error_ints which,
intptr_t* p) {
GPR_TIMER_SCOPE("grpc_error_get_int", 0);
if (grpc_error_is_special(err)) {
if (which != GRPC_ERROR_INT_GRPC_STATUS) return false;
*p = error_status_map[reinterpret_cast<size_t>(err)].code;
@ -603,7 +598,6 @@ bool grpc_error_get_int(grpc_error_handle err, grpc_error_ints which,
grpc_error_handle grpc_error_set_str(grpc_error_handle src,
grpc_error_strs which,
const grpc_slice& str) {
GPR_TIMER_SCOPE("grpc_error_set_str", 0);
grpc_error_handle new_err = copy_error_and_unref(src);
internal_set_str(&new_err, which, str);
return new_err;
@ -632,7 +626,6 @@ bool grpc_error_get_str(grpc_error_handle err, grpc_error_strs which,
grpc_error_handle grpc_error_add_child(grpc_error_handle src,
grpc_error_handle child) {
GPR_TIMER_SCOPE("grpc_error_add_child", 0);
if (src != GRPC_ERROR_NONE) {
if (child == GRPC_ERROR_NONE) {
/* \a child is empty. Simply return the ref to \a src */
@ -864,7 +857,6 @@ static char* finish_kvs(kv_pairs* kvs) {
}
const char* grpc_error_string(grpc_error_handle err) {
GPR_TIMER_SCOPE("grpc_error_string", 0);
if (err == GRPC_ERROR_NONE) return no_error_string;
if (err == GRPC_ERROR_OOM) return oom_error_string;
if (err == GRPC_ERROR_CANCELLED) return cancelled_error_string;

@ -20,6 +20,7 @@
#include "absl/strings/str_format.h"
#include "absl/strings/strip.h"
#include "src/core/lib/gpr/useful.h"
#include "src/core/lib/matchers/matchers.h"
namespace grpc_core {

@ -26,7 +26,6 @@
#include "src/core/lib/gprpp/memory.h"
#include "src/core/lib/gprpp/ref_counted.h"
#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/slice/slice_internal.h"
char* grpc_slice_to_c_string(grpc_slice slice) {
@ -45,21 +44,6 @@ grpc_slice grpc_slice_copy(grpc_slice s) {
return out;
}
/* Public API */
grpc_slice grpc_slice_ref(grpc_slice slice) {
return grpc_slice_ref_internal(slice);
}
/* Public API */
void grpc_slice_unref(grpc_slice slice) {
if (grpc_core::ExecCtx::Get() == nullptr) {
grpc_core::ExecCtx exec_ctx;
grpc_slice_unref_internal(slice);
} else {
grpc_slice_unref_internal(slice);
}
}
namespace grpc_core {
/* grpc_slice_from_static_string support structure - a refcount that does

@ -0,0 +1,39 @@
/*
*
* Copyright 2015 gRPC authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
#include <grpc/support/port_platform.h>
#include <grpc/slice.h>
#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/slice/slice_internal.h"
/* Public API */
grpc_slice grpc_slice_ref(grpc_slice slice) {
return grpc_slice_ref_internal(slice);
}
/* Public API */
void grpc_slice_unref(grpc_slice slice) {
if (grpc_core::ExecCtx::Get() == nullptr) {
grpc_core::ExecCtx exec_ctx;
grpc_slice_unref_internal(slice);
} else {
grpc_slice_unref_internal(slice);
}
}

@ -32,7 +32,6 @@
#include "src/core/lib/gprpp/ref_counted.h"
#include "src/core/lib/slice/slice_refcount.h"
#include "src/core/lib/slice/slice_utils.h"
#include "src/core/lib/transport/static_metadata.h"
void grpc_slice_buffer_reset_and_unref_internal(grpc_slice_buffer* sb);
void grpc_slice_buffer_partial_unref_internal(grpc_slice_buffer* sb,

@ -571,6 +571,7 @@ CORE_SOURCE_FILES = [
'src/core/lib/slice/b64.cc',
'src/core/lib/slice/percent_encoding.cc',
'src/core/lib/slice/slice.cc',
'src/core/lib/slice/slice_api.cc',
'src/core/lib/slice/slice_buffer.cc',
'src/core/lib/slice/slice_intern.cc',
'src/core/lib/slice/slice_refcount.cc',

@ -2099,6 +2099,7 @@ src/core/lib/slice/b64.h \
src/core/lib/slice/percent_encoding.cc \
src/core/lib/slice/percent_encoding.h \
src/core/lib/slice/slice.cc \
src/core/lib/slice/slice_api.cc \
src/core/lib/slice/slice_buffer.cc \
src/core/lib/slice/slice_intern.cc \
src/core/lib/slice/slice_internal.h \

@ -1939,6 +1939,7 @@ src/core/lib/slice/b64.h \
src/core/lib/slice/percent_encoding.cc \
src/core/lib/slice/percent_encoding.h \
src/core/lib/slice/slice.cc \
src/core/lib/slice/slice_api.cc \
src/core/lib/slice/slice_buffer.cc \
src/core/lib/slice/slice_intern.cc \
src/core/lib/slice/slice_internal.h \

@ -33,8 +33,8 @@ BANNED_EXCEPT = {
'grpc_slice_buffer_reset_and_unref(': [
'src/core/lib/slice/slice_buffer.cc'
],
'grpc_slice_ref(': ['src/core/lib/slice/slice.cc'],
'grpc_slice_unref(': ['src/core/lib/slice/slice.cc'],
'grpc_slice_ref(': ['src/core/lib/slice/slice_api.cc'],
'grpc_slice_unref(': ['src/core/lib/slice/slice_api.cc'],
'grpc_error_create(': [
'src/core/lib/iomgr/error.cc', 'src/core/lib/iomgr/error_cfstream.cc'
],

Loading…
Cancel
Save