internal: iso C++ prohibits anonymous structs (#10955)

turn on -Wpedantic and name the anonymous struct.
This commit is contained in:
Tom Englund
2025-07-07 16:18:06 +02:00
committed by GitHub
parent d23ed852fc
commit 54369adffa
6 changed files with 33 additions and 32 deletions

View File

@@ -91,6 +91,7 @@ add_compile_options(
-Wno-narrowing
-Wno-pointer-arith
-Wno-clobbered
-Wpedantic
-fmacro-prefix-map=${CMAKE_SOURCE_DIR}/=)
set(CMAKE_EXECUTABLE_ENABLE_EXPORTS TRUE)

View File

@@ -75,7 +75,7 @@ CDRMSyncobjSurfaceResource::CDRMSyncobjSurfaceResource(UP<CWpLinuxDrmSyncobjSurf
});
m_listeners.surfacePrecommit = m_surface->m_events.precommit.registerListener([this](std::any d) {
if (!m_surface->m_pending.updated.buffer || !m_surface->m_pending.buffer) {
if (!m_surface->m_pending.updated.bits.buffer || !m_surface->m_pending.buffer) {
if (m_pendingAcquire.timeline() || m_pendingRelease.timeline()) {
m_resource->error(WP_LINUX_DRM_SYNCOBJ_SURFACE_V1_ERROR_NO_BUFFER, "Missing buffer");
m_surface->m_pending.rejected = true;
@@ -101,9 +101,9 @@ CDRMSyncobjSurfaceResource::CDRMSyncobjSurfaceResource(UP<CWpLinuxDrmSyncobjSurf
return;
}
m_surface->m_pending.updated.acquire = true;
m_surface->m_pending.acquire = m_pendingAcquire;
m_pendingAcquire = {};
m_surface->m_pending.updated.bits.acquire = true;
m_surface->m_pending.acquire = m_pendingAcquire;
m_pendingAcquire = {};
m_surface->m_pending.buffer->addReleasePoint(m_pendingRelease);
m_pendingRelease = {};

View File

@@ -15,7 +15,7 @@ CViewportResource::CViewportResource(SP<CWpViewport> resource_, SP<CWLSurfaceRes
return;
}
m_surface->m_pending.updated.viewport = true;
m_surface->m_pending.updated.bits.viewport = true;
if (x == -1 && y == -1) {
m_surface->m_pending.viewport.hasDestination = false;
@@ -37,7 +37,7 @@ CViewportResource::CViewportResource(SP<CWpViewport> resource_, SP<CWLSurfaceRes
return;
}
m_surface->m_pending.updated.viewport = true;
m_surface->m_pending.updated.bits.viewport = true;
double x = wl_fixed_to_double(fx), y = wl_fixed_to_double(fy), w = wl_fixed_to_double(fw), h = wl_fixed_to_double(fh);

View File

@@ -72,8 +72,8 @@ CWLSurfaceResource::CWLSurfaceResource(SP<CWlSurface> resource_) : m_resource(re
m_resource->setOnDestroy([this](CWlSurface* r) { destroy(); });
m_resource->setAttach([this](CWlSurface* r, wl_resource* buffer, int32_t x, int32_t y) {
m_pending.updated.buffer = true;
m_pending.updated.offset = true;
m_pending.updated.bits.buffer = true;
m_pending.updated.bits.offset = true;
m_pending.offset = {x, y};
@@ -95,8 +95,8 @@ CWLSurfaceResource::CWLSurfaceResource(SP<CWlSurface> resource_) : m_resource(re
}
if (m_pending.bufferSize != m_current.bufferSize) {
m_pending.updated.damage = true;
m_pending.bufferDamage = CBox{{}, {INT32_MAX, INT32_MAX}};
m_pending.updated.bits.damage = true;
m_pending.bufferDamage = CBox{{}, {INT32_MAX, INT32_MAX}};
}
});
@@ -124,7 +124,7 @@ CWLSurfaceResource::CWLSurfaceResource(SP<CWlSurface> resource_) : m_resource(re
return;
}
if ((!m_pending.updated.buffer) || // no new buffer attached
if ((!m_pending.updated.bits.buffer) || // no new buffer attached
(!m_pending.buffer && !m_pending.texture) // null buffer attached
) {
commitState(m_pending);
@@ -149,7 +149,7 @@ CWLSurfaceResource::CWLSurfaceResource(SP<CWlSurface> resource_) : m_resource(re
m_pendingStates.pop();
};
if (state->updated.acquire) {
if (state->updated.bits.acquire) {
// wait on acquire point for this surface, from explicit sync protocol
state->acquire.addWaiter(whenReadable);
} else if (state->buffer->isSynchronous()) {
@@ -170,11 +170,11 @@ CWLSurfaceResource::CWLSurfaceResource(SP<CWlSurface> resource_) : m_resource(re
});
m_resource->setDamage([this](CWlSurface* r, int32_t x, int32_t y, int32_t w, int32_t h) {
m_pending.updated.damage = true;
m_pending.updated.bits.damage = true;
m_pending.damage.add(CBox{x, y, w, h});
});
m_resource->setDamageBuffer([this](CWlSurface* r, int32_t x, int32_t y, int32_t w, int32_t h) {
m_pending.updated.damage = true;
m_pending.updated.bits.damage = true;
m_pending.bufferDamage.add(CBox{x, y, w, h});
});
@@ -182,8 +182,8 @@ CWLSurfaceResource::CWLSurfaceResource(SP<CWlSurface> resource_) : m_resource(re
if (scale == m_pending.scale)
return;
m_pending.updated.scale = true;
m_pending.updated.damage = true;
m_pending.updated.bits.scale = true;
m_pending.updated.bits.damage = true;
m_pending.scale = scale;
m_pending.bufferDamage = CBox{{}, {INT32_MAX, INT32_MAX}};
@@ -193,15 +193,15 @@ CWLSurfaceResource::CWLSurfaceResource(SP<CWlSurface> resource_) : m_resource(re
if (tr == m_pending.transform)
return;
m_pending.updated.transform = true;
m_pending.updated.damage = true;
m_pending.updated.bits.transform = true;
m_pending.updated.bits.damage = true;
m_pending.transform = (wl_output_transform)tr;
m_pending.bufferDamage = CBox{{}, {INT32_MAX, INT32_MAX}};
});
m_resource->setSetInputRegion([this](CWlSurface* r, wl_resource* region) {
m_pending.updated.input = true;
m_pending.updated.bits.input = true;
if (!region) {
m_pending.input = CBox{{}, {INT32_MAX, INT32_MAX}};
@@ -213,7 +213,7 @@ CWLSurfaceResource::CWLSurfaceResource(SP<CWlSurface> resource_) : m_resource(re
});
m_resource->setSetOpaqueRegion([this](CWlSurface* r, wl_resource* region) {
m_pending.updated.opaque = true;
m_pending.updated.bits.opaque = true;
if (!region) {
m_pending.opaque = CBox{{}, {}};
@@ -227,8 +227,8 @@ CWLSurfaceResource::CWLSurfaceResource(SP<CWlSurface> resource_) : m_resource(re
m_resource->setFrame([this](CWlSurface* r, uint32_t id) { m_callbacks.emplace_back(makeShared<CWLCallbackResource>(makeShared<CWlCallback>(m_client, 1, id))); });
m_resource->setOffset([this](CWlSurface* r, int32_t x, int32_t y) {
m_pending.updated.offset = true;
m_pending.offset = {x, y};
m_pending.updated.bits.offset = true;
m_pending.offset = {x, y};
});
}

View File

@@ -65,36 +65,36 @@ void SSurfaceState::reset() {
void SSurfaceState::updateFrom(SSurfaceState& ref) {
updated = ref.updated;
if (ref.updated.buffer) {
if (ref.updated.bits.buffer) {
buffer = ref.buffer;
texture = ref.texture;
size = ref.size;
bufferSize = ref.bufferSize;
}
if (ref.updated.damage) {
if (ref.updated.bits.damage) {
damage = ref.damage;
bufferDamage = ref.bufferDamage;
}
if (ref.updated.input)
if (ref.updated.bits.input)
input = ref.input;
if (ref.updated.opaque)
if (ref.updated.bits.opaque)
opaque = ref.opaque;
if (ref.updated.offset)
if (ref.updated.bits.offset)
offset = ref.offset;
if (ref.updated.scale)
if (ref.updated.bits.scale)
scale = ref.scale;
if (ref.updated.transform)
if (ref.updated.bits.transform)
transform = ref.transform;
if (ref.updated.viewport)
if (ref.updated.bits.viewport)
viewport = ref.viewport;
if (ref.updated.acquire)
if (ref.updated.bits.acquire)
acquire = ref.acquire;
}

View File

@@ -20,7 +20,7 @@ struct SSurfaceState {
bool offset : 1;
bool viewport : 1;
bool acquire : 1;
};
} bits;
} updated;
bool rejected = false;