summaryrefslogtreecommitdiff
path: root/tools/lib/python/kdoc/kdoc_item.py
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>2026-03-23 12:10:50 +0300
committerJonathan Corbet <corbet@lwn.net>2026-03-25 22:36:46 +0300
commit99ec67a9984fdf38c7ed78695aeb1b99cfee5b50 (patch)
treeb00e5dc56d43ec03b1e63441e4e14badc6ec9f73 /tools/lib/python/kdoc/kdoc_item.py
parent8326e4a21838593fe67b5d79ba6d0dc8e962ebb9 (diff)
downloadlinux-99ec67a9984fdf38c7ed78695aeb1b99cfee5b50.tar.xz
docs: kdoc: better handle source when producing YAML output
The current logic was storing symbols source code on a list, not linked to the actual KdocItem. While this works fine when kernel-doc markups are OK, on places where there is a "/**" without a valid kernel-doc markup, it ends that the 1:1 match between source code and KdocItem doesn't happen, causing problems to generate the YAML output. Fix it by storing the source code directly into the KdocItem structure. This shouldn't affect performance or memory footprint, except when --yaml option is used. While here, add a __repr__() function for KdocItem, as it helps debugging it. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Signed-off-by: Jonathan Corbet <corbet@lwn.net> Message-ID: <77902dafabb5c3250486aa2dc1568d5fafa95c5b.1774256269.git.mchehab+huawei@kernel.org>
Diffstat (limited to 'tools/lib/python/kdoc/kdoc_item.py')
-rw-r--r--tools/lib/python/kdoc/kdoc_item.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/tools/lib/python/kdoc/kdoc_item.py b/tools/lib/python/kdoc/kdoc_item.py
index fe08cac861c2..a7aa6e1e4c1c 100644
--- a/tools/lib/python/kdoc/kdoc_item.py
+++ b/tools/lib/python/kdoc/kdoc_item.py
@@ -14,7 +14,8 @@ class KdocItem:
then pass into the output modules.
"""
- def __init__(self, name, fname, type, start_line, **other_stuff):
+ def __init__(self, name, fname, type, start_line,
+ **other_stuff):
self.name = name
self.fname = fname
self.type = type
@@ -60,6 +61,9 @@ class KdocItem:
def __getitem__(self, key):
return self.get(key)
+ def __repr__(self):
+ return f"KdocItem({self.name}, {self.fname}, {self.type}, {self.declaration_start_line})"
+
@classmethod
def from_dict(cls, d):
"""Create a KdocItem from a plain dict."""