Skip to content

Commit 5fc52ea

Browse files
committed
renderer: hotfix a crash
prevent a nullptr memory access regression by f533701 issue: godotengine/godot#97078
1 parent a633322 commit 5fc52ea

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

src/renderer/gl_engine/tvgGlRenderer.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,6 @@ void GlRenderer::drawPrimitive(GlShape& sdata, uint8_t r, uint8_t g, uint8_t b,
202202

203203
void GlRenderer::drawPrimitive(GlShape& sdata, const Fill* fill, RenderUpdateFlag flag, int32_t depth)
204204
{
205-
206205
const auto& vp = currentPass()->getViewport();
207206
auto bbox = sdata.geometry->getViewport();
208207

@@ -1006,7 +1005,6 @@ bool GlRenderer::renderImage(void* data)
10061005
bool GlRenderer::renderShape(RenderData data)
10071006
{
10081007
auto sdata = static_cast<GlShape*>(data);
1009-
if (!sdata) return false;
10101008

10111009
if (currentPass()->isEmpty()) return true;
10121010

src/renderer/tvgShape.h

+4-2
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,9 @@ struct Shape::Impl
5151

5252
bool render(RenderMethod* renderer)
5353
{
54+
if (!rd) return false;
55+
5456
Compositor* cmp = nullptr;
55-
bool ret;
5657

5758
renderer->blend(shape->blend());
5859

@@ -61,7 +62,7 @@ struct Shape::Impl
6162
renderer->beginComposite(cmp, CompositeMethod::None, opacity);
6263
}
6364

64-
ret = renderer->renderShape(rd);
65+
auto ret = renderer->renderShape(rd);
6566
if (cmp) renderer->endComposite(cmp);
6667
return ret;
6768
}
@@ -117,6 +118,7 @@ struct Shape::Impl
117118

118119
RenderRegion bounds(RenderMethod* renderer)
119120
{
121+
if (!rd) return {0, 0, 0, 0};
120122
return renderer->region(rd);
121123
}
122124

0 commit comments

Comments
 (0)