MCPcopy Create free account
hub / github.com/OpenBoard-org/OpenBoard / findPatternInObjOrParents

Method findPatternInObjOrParents

src/pdf-merger/Object.cpp:573–608  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

571}
572
573Object* Object::findPatternInObjOrParents(const std::string &pattern)
574{
575 std::string content=getObjectContent();
576 if((int) Parser::findToken(content,pattern,0) != -1 )
577 {
578 return this;
579 }
580
581 Object * parent = this;
582 Object *foundObj = NULL;
583 while(1)
584 {
585 unsigned int startOfParent = content.find("/Parent");
586 unsigned int endOfParent = content.find(" R", startOfParent);
587 if((int)startOfParent == -1)
588 {
589 break;
590 }
591 std::vector <Object *> parents = parent->getChildrenByBounds(startOfParent, endOfParent);
592 if( parents.size() != 1 )
593 {
594 break;
595 }
596 parent = parents[0];
597 std::string parentContent = parent->getObjectContent();
598 unsigned int startOfPattern = parentContent.find(pattern);
599 if((int)startOfPattern == -1)
600 {
601 content = parentContent;
602 continue;
603 }
604 foundObj = parent;
605 break;
606 }
607 return foundObj;
608}
609

Callers 2

processBasePageResourcesFunction · 0.80
mergeMethod · 0.80

Calls 2

getChildrenByBoundsMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected