[umbrello] [Bug 456427] code import crash

Xuxu bugzilla_noreply at kde.org
Mon Oct 24 18:46:39 BST 2022


https://bugs.kde.org/show_bug.cgi?id=456427

Xuxu <zhongjie007 at yeah.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |zhongjie007 at yeah.net

--- Comment #1 from Xuxu <zhongjie007 at yeah.net> ---
I have a patch to fix this. you should patch `lib/cppparser/parser.cpp` with
below. 

>> I think use `&(*std::unique_ptr)` is superfluous. `std::unique_ptr.get()` have the same effect. Hope the maintainer fix this as soon as possible

***
umbrello branch release/22.08 
***

```
diff --color -uprN a/lib/cppparser/parser.cpp b/lib/cppparser/parser.cpp
--- a/lib/cppparser/parser.cpp  2022-10-11 03:38:32.000000000 +0800
+++ b/lib/cppparser/parser.cpp  2022-10-25 00:45:11.678067641 +0800
@@ -1844,7 +1844,7 @@ template<class Type>
 void Parser::eventuallyTakeComment(int startLn, int endLn, Type& ast)
 {
     if (comment().line() >= startLn && comment().line() <= endLn) {
-        if (&(*ast)) {
+        if (ast.get()) {
             if (comment()) {
                 ast->setComment(comment());
             }
@@ -1860,7 +1860,7 @@ void Parser::eventuallyTakeComment(Type&
     int line = currentLine();
     Comment c = m_commentStore.getCommentsInRange(line, true);

-    if (&(*ast) && c) {
+    if (ast.get() && c) {
         ast->setComment(c);
     }
 }
@@ -3158,7 +3158,7 @@ bool Parser::parseDeclarationInternal(De
             int endSignature = m_lexer->index();

             Comment mcomment;
-            if (&(*declarator)) {
+            if (declarator.get()) {
                 int endLine, endColumn;
                 declarator->getEndPosition(&endLine, &endColumn);
                 mcomment = m_commentStore.getCommentsInRange(endLine);
@@ -3294,7 +3294,7 @@ start_decl:
         }

         Comment mcomment;
-        if (&(*decl)) {
+        if (decl.get()) {
             int line, col;
             decl->getEndPosition(&line, &col);
             mcomment = m_commentStore.getCommentsInRange(line);
@@ -3311,7 +3311,7 @@ start_decl:
             SimpleDeclarationAST::Node ast =
CreateNode<SimpleDeclarationAST>();
             int line, col;
             ast->setComment(mcomment);
-            if (&(*decl)) {
+            if (decl.get()) {
                 decl->getEndPosition(&line, &col);

                 preparseLineComments(line);
@@ -3343,7 +3343,7 @@ start_decl:
                 FunctionDefinitionAST::Node ast =
CreateNode<FunctionDefinitionAST>();

                 ast->setComment(mcomment);
-                if (&(*decl)) {
+                if (decl.get()) {
                     int line, col;
                     decl->getEndPosition(&line, &col);

```

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the umbrello-devel mailing list