Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
4207ebbc
Commit
4207ebbc
authored
8 years ago
by
abratchik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix for VideoCapture crash
parent
084c5958
master
4.3.0
4.2.0
4.1.2
4.1.2-openvino
4.1.1
4.1.1-openvino
4.1.0
4.1.0-openvino
4.0.1
4.0.1-openvino
4.0.0
4.0.0-rc
4.0.0-openvino
4.0.0-beta
4.0.0-alpha
3.4.10
3.4.9
3.4.8
3.4.7
3.4.6
3.4.5
3.4.4
3.4.3
3.4.3-openvino
3.4.2
3.4.2-openvino
3.4.1
3.4.1-cvsdk
3.4.0
3.4.0-rc
3.3.1
3.3.1-cvsdk
3.3.0
3.3.0-rc
3.3.0-cvsdk
3.2.0
3.2.0-rc
No related merge requests found
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
7 deletions
+22
-7
gen_java.py
modules/java/generator/gen_java.py
+22
-7
No files found.
modules/java/generator/gen_java.py
View file @
4207ebbc
...
...
@@ -783,6 +783,7 @@ class ClassInfo(GeneralInfo):
self
.
imports
=
set
()
self
.
props
=
[]
self
.
jname
=
self
.
name
self
.
smart
=
None
# True if class stores Ptr<T>* instead of T* in nativeObj field
self
.
j_code
=
None
# java code stream
self
.
jn_code
=
None
# jni code stream
self
.
cpp_code
=
None
# cpp code stream
...
...
@@ -1392,10 +1393,10 @@ class JavaWrapperGenerator(object):
elif
fi
.
static
:
cvname
=
fi
.
fullName
(
isCPP
=
True
)
else
:
cvname
=
(
"me->"
if
not
self
.
isSmartClass
(
fi
.
classname
)
else
"(*me)->"
)
+
name
cvname
=
(
"me->"
if
not
self
.
isSmartClass
(
ci
)
else
"(*me)->"
)
+
name
c_prologue
.
append
(
\
"
%(cls)
s* me = (
%(cls)
s*) self; //TODO: check for NULL"
\
%
{
"cls"
:
self
.
smartWrap
(
fi
.
classname
,
fi
.
fullClass
(
isCPP
=
True
))}
\
%
{
"cls"
:
self
.
smartWrap
(
ci
,
fi
.
fullClass
(
isCPP
=
True
))}
\
)
cvargs
=
[]
for
a
in
args
:
...
...
@@ -1541,7 +1542,7 @@ JNIEXPORT void JNICALL Java_org_opencv_%(module)s_%(j_cls)s_delete
delete (
%(cls)
s*) self;
}
"""
%
{
"module"
:
module
.
replace
(
'_'
,
'_1'
),
"cls"
:
self
.
smartWrap
(
ci
.
name
,
ci
.
fullName
(
isCPP
=
True
)),
"j_cls"
:
ci
.
jname
.
replace
(
'_'
,
'_1'
)}
"""
%
{
"module"
:
module
.
replace
(
'_'
,
'_1'
),
"cls"
:
self
.
smartWrap
(
ci
,
ci
.
fullName
(
isCPP
=
True
)),
"j_cls"
:
ci
.
jname
.
replace
(
'_'
,
'_1'
)}
)
def
getClass
(
self
,
classname
):
...
...
@@ -1551,17 +1552,31 @@ JNIEXPORT void JNICALL Java_org_opencv_%(module)s_%(j_cls)s_delete
name
=
classname
or
self
.
Module
return
name
in
self
.
classes
def
isSmartClass
(
self
,
c
lassname
):
def
isSmartClass
(
self
,
c
i
):
'''
Check if class stores Ptr<T>* instead of T* in nativeObj field
'''
return
self
.
isWrapped
(
classname
)
if
ci
.
smart
!=
None
:
return
ci
.
smart
# if parents are smart (we hope) then children are!
# if not we believe the class is smart if it has "create" method
ci
.
smart
=
False
if
ci
.
base
:
ci
.
smart
=
True
else
:
for
fi
in
ci
.
methods
:
if
fi
.
name
==
"create"
:
ci
.
smart
=
True
break
return
ci
.
smart
def
smartWrap
(
self
,
name
,
fullname
):
def
smartWrap
(
self
,
ci
,
fullname
):
'''
Wraps fullname with Ptr<> if needed
'''
if
self
.
isSmartClass
(
name
):
if
self
.
isSmartClass
(
ci
):
return
"Ptr<"
+
fullname
+
">"
return
fullname
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment