Skip to content

Use proc table for embedder APIs #97

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 1, 2021

Conversation

bbrto21
Copy link

@bbrto21 bbrto21 commented May 26, 2021

  • Use the proc table like other platform implementations
  • Use FlutterEngine as private memeber of FlutterTizenEngine
  • Only FlutterTizenEngine is dependent on FlutterEngine

Signed-off-by: Boram Bae boram21.bae@samsung.com

@bbrto21
Copy link
Author

bbrto21 commented May 26, 2021

I will make additional changes after #86 merged

@swift-kim
Copy link
Member

As far as I know the only advantage of using proc table is improved testability. So there's no benifit for us because we don't have any tests. Still this change looks good.

@bbrto21
Copy link
Author

bbrto21 commented May 26, 2021

Yes, you're right. I thought we would need it later but It is a simple change, so I did it right away 😄

@bbrto21
Copy link
Author

bbrto21 commented May 26, 2021

@swift-kim Well... I have a question. it seems that our engine always has NDEBUG turned on both release and debug.
It doesn't seem very important, but... is it the correct configuration?

@swift-kim
Copy link
Member

swift-kim commented May 27, 2021

@bbrto21

  1. NDEBUG should be defined for release builds only:

    https://github.com/flutter/buildroot/blob/ef50dec1f85ee435e967505f460d2c0ce6fde58e/build/config/BUILD.gn#L84-L85

  2. The is_debug flag depends on the --unoptimized build option, but not the --runtime-mode option - I don't know why:

    engine/tools/gn

    Line 114 in 9f408ef

    gn_args['is_debug'] = args.unoptimized

    May be related to the change Change the "develop" runtime mode back to "debug" and rename the "deb… flutter/engine#2669.

  3. We don't set the option in the CI build:

    flutter/tools/gn \
    --target-os linux \
    --linux-cpu $(arch) \
    --target-toolchain `pwd`/tizen_tools/toolchains \
    --target-sysroot `pwd`/tizen_tools/sysroot/$(arch) \
    --target-triple $(targetTriple) \
    --runtime-mode $(mode) \
    --embedder-for-target \
    --disable-desktop-embeddings \
    --build-tizen-shell
    ninja -C out/linux_$(mode)_$(arch)

So it's a bug. 😨 We need to fix our build config.

It's not something that requires a fix. If you want to run the engine/embedder in checked mode for debugging purpose, you can enable the --unoptimized option when configuring your local build.

@bbrto21
Copy link
Author

bbrto21 commented May 27, 2021

So it's a bug. We need to fix our build config.

@swift-kim @pwasowski2
if it means that use --unoptimized for debug mode, I think that the symbol resolution will succeed

* Use the proc table like other platform implementations
* Use FlutterEngine as private memeber of FlutterTizenEngine
* Only FlutterTizenEngine is dependent on FlutterEngine

Signed-off-by: Boram Bae <boram21.bae@samsung.com>
@bbrto21 bbrto21 marked this pull request as ready for review May 27, 2021 07:49
@bbrto21 bbrto21 requested review from swift-kim and xiaowei-guan and removed request for swift-kim May 28, 2021 01:23
Copy link
Member

@swift-kim swift-kim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Beautiful!

Signed-off-by: Boram Bae <boram21.bae@samsung.com>
@bbrto21 bbrto21 merged commit f3de144 into flutter-tizen:flutter-2.0.1-tizen Jun 1, 2021
swift-kim pushed a commit that referenced this pull request Jun 7, 2021
* Use proc table for embedder APIs

* Use the proc table like other platform implementations
* Use FlutterEngine as private memeber of FlutterTizenEngine
* Only FlutterTizenEngine is dependent on FlutterEngine

Signed-off-by: Boram Bae <boram21.bae@samsung.com>

* Update based on review

Signed-off-by: Boram Bae <boram21.bae@samsung.com>
swift-kim pushed a commit that referenced this pull request Sep 27, 2021
* Use proc table for embedder APIs

* Use the proc table like other platform implementations
* Use FlutterEngine as private memeber of FlutterTizenEngine
* Only FlutterTizenEngine is dependent on FlutterEngine

Signed-off-by: Boram Bae <boram21.bae@samsung.com>

* Update based on review

Signed-off-by: Boram Bae <boram21.bae@samsung.com>
swift-kim pushed a commit that referenced this pull request Nov 14, 2021
* Use proc table for embedder APIs

* Use the proc table like other platform implementations
* Use FlutterEngine as private memeber of FlutterTizenEngine
* Only FlutterTizenEngine is dependent on FlutterEngine

Signed-off-by: Boram Bae <boram21.bae@samsung.com>

* Update based on review

Signed-off-by: Boram Bae <boram21.bae@samsung.com>
swift-kim pushed a commit that referenced this pull request Dec 9, 2021
* Use proc table for embedder APIs

* Use the proc table like other platform implementations
* Use FlutterEngine as private memeber of FlutterTizenEngine
* Only FlutterTizenEngine is dependent on FlutterEngine

Signed-off-by: Boram Bae <boram21.bae@samsung.com>

* Update based on review

Signed-off-by: Boram Bae <boram21.bae@samsung.com>
swift-kim pushed a commit that referenced this pull request Dec 17, 2021
* Use proc table for embedder APIs

* Use the proc table like other platform implementations
* Use FlutterEngine as private memeber of FlutterTizenEngine
* Only FlutterTizenEngine is dependent on FlutterEngine

Signed-off-by: Boram Bae <boram21.bae@samsung.com>
swift-kim pushed a commit that referenced this pull request Feb 7, 2022
* Use proc table for embedder APIs

* Use the proc table like other platform implementations
* Use FlutterEngine as private memeber of FlutterTizenEngine
* Only FlutterTizenEngine is dependent on FlutterEngine

Signed-off-by: Boram Bae <boram21.bae@samsung.com>
swift-kim pushed a commit that referenced this pull request Feb 11, 2022
* Use proc table for embedder APIs

* Use the proc table like other platform implementations
* Use FlutterEngine as private memeber of FlutterTizenEngine
* Only FlutterTizenEngine is dependent on FlutterEngine

Signed-off-by: Boram Bae <boram21.bae@samsung.com>
swift-kim pushed a commit that referenced this pull request May 12, 2022
* Use proc table for embedder APIs

* Use the proc table like other platform implementations
* Use FlutterEngine as private memeber of FlutterTizenEngine
* Only FlutterTizenEngine is dependent on FlutterEngine

Signed-off-by: Boram Bae <boram21.bae@samsung.com>
swift-kim pushed a commit that referenced this pull request Aug 5, 2022
* Use proc table for embedder APIs

* Use the proc table like other platform implementations
* Use FlutterEngine as private memeber of FlutterTizenEngine
* Only FlutterTizenEngine is dependent on FlutterEngine

Signed-off-by: Boram Bae <boram21.bae@samsung.com>
swift-kim pushed a commit that referenced this pull request Sep 1, 2022
* Use proc table for embedder APIs

* Use the proc table like other platform implementations
* Use FlutterEngine as private memeber of FlutterTizenEngine
* Only FlutterTizenEngine is dependent on FlutterEngine

Signed-off-by: Boram Bae <boram21.bae@samsung.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants